the one thing i have found, and actually learned this at a clinic for showmanship at an expo.
When a horse does that, you ut your hand on the side of the tail and pull it towards the direction you want them to put their weight.
So if you want them to put their weight back on their left leg, pull from the right side of the tail at the top (when i say pull, i don't mean pull the actual strands, but the base of the tail gently) and they will shift their weight. As soon as your hose does that i would give it a rub tell him how great he is and eventually they learn to just square up and stand even.
As you do this use a word like 'even' or something so as he gets to understand that touching the tail means square up he will associate the word with it and you can work towards just using the word to get him even.
The guy at the clinic said he makes all of his kids get their horses parked before and after a ride. I make my mare park out at least one time during a session, and if i am leading her around i park her out every time we stop. She now squares up even when I am in the saddle bc of the routine.
repetition, repetition, repetition...