Here's one suggestion--you can't hold a 1,000 pound animal's head up!
So stop trying.
He's basically just leaning on the rein pressure, which brings all of his weight onto his forehand. Try lighter to almost-barely-there contact. Bring his head up with one rein, and leave him alone until he puts it down. Then fix. You'll probably have to do this 100 times, but he'll get it eventually.
And before and after you ride, LET him stretch his head down (even during--horses love it.). It may sound counter-productive, but how would you feel if someone rode you for 30 minutes to an hour and never let you move your neck out of a cranked position? Horses were built to spend their days with their heads on the ground eating, or horizontal. It helps lengthen and stretch their neck and allow their back to swing, and come up. Also, move your hands with his head as he canters--he's no grand prix horse, and doesn't have the collection required for stable hands.
I would work on getting your leg underneath you before you try to sit back--you probably sit forward because you feel more secure; if you sit back it's just going to push your legs further out in front of you. Push down and back from your hip and thigh, and your leg will find it's position fairly easy. From then, you can sit back--and then you won't pump with your shoulders anymore.