Definitely work on some lounging and round penning!!! Getting him to move only when you want him to in a circle leads to him moving when you want him to out of your space. Also, I have found that with super pushy horses, taking a crop or even just a fly swatter and giving them a 'reason' to move out or away works wonders. Just a swift, firm smack to the chest to make him back up and as soon as you get 2 feet, make him stand, and step two feet away from you. If he steps forward, back him up again, and repeat until he stands away from you willingly.
As for the farrier, work with his feet like previously suggested. You can also make his feet being worked with and handled far more rewarding by giving him a treat or a small bit of grain when he DOES behave. If he reaches for the treats or gets pushy with them, pop him lightly in the nose or under the chin adding a firm "no" and take the treat away.
I know it sounds like all I want you to do is 'beat' your horse, that is NOT the case! If you think of a herd situation where a horse is totally annoying another, or trying to be pushy with another horse, what do they do AFTER they pin their ears? They bite and or kick. That is all your doing with your little crop or fly swatter. You can't actually bite or kick, but you can deliver the same communication with minimal pain or injury or confusion.
Some horses need that physical barrier of "That is WRONG!".
One time I was working with a woman who complained that her 18hh OBESE percheron gelding was pushy. I asked her to show me how she handled him and sure enough, she never laid a hand on him but otherwise did everything right, but he still ignored her. I personally experienced his pushiness when out in the pasture trying to grab my mares. He about trampled me because he wanted attention and or treats!!! When I introduced him to a little dressage whip, he learned very quickly to respect MY space. When he was put in a round pen, you could NOT get him to move more than he 'wanted' to either and it bothered his owner that he was so very stubborn/lazy. So what do I do? Pop him in the fleshy part of the rump as a way to tell him "move!". Sure enough he moved! His owner flipped out however and went the road of "OMG YOU'RE ABUSING MY POOR DEFENSELESS BABY!!!" o_o
I did NOT use a 2x4 and I didn't continue to pop him once he did move.
Just remember, contrary to belief, not ALL horses are meant to be 'untouched' when trained and worked with. My mare is very much the 'untouched' trainable horse. I used a whip to extend my arm, but I NEVER had to pop her. I've used a crop for the same reason and the the only contact she's ever had from it was a bit of pressure to her chest to teach her to back up, not a pop at all.
So, take your horse's personality in mind and think more horse like and less human like. If he only moves when 'bitten'...'bite' him...simple as that, and not at all abusive!