Your horse will only ever be as light, willing, responsive, respectful, and easy to handle, etc as you expect him to be.
You will only get what you expect, allow, and or accept.
If you accept your horse dancing around and allow him to push on the gate when you are trying to open it your horse has no motivation to improve his behavior and stand still and wait.
So how do you stop enabling your horse's mediocre behavior?
For every maneuver and or action your horse does ask yourself, "Was this (fill in the blank) the best that he can possibly do?" And if it wasn't you need to work and practice until it is, and if you do not know how to improve it or fix it you should seek out the help of someone who does.
True horsemanship happens when you stop accepting good enough and start striving to be the best that you can be.