Just posted this on a question about lunging, but it applies here as well.
I start in a full check snaffle and hold the rein about 4" from the bit. Place pressure on the rein toward his shoulder and release when the horse puts slack in the rein. Do this a few times then change sides.
Go Forward - Now tap high on his hip and keep tapping until he takes a step forward. Give him a few moments and if he does not move increase the intensity of the taps. Continue to increase them until he moves, stopping as soon as he does. The next time you ask, start light again.
When he is consistently stepping off on both sides when you give a light tap, build on the number of steps he takes by reapplying the light cue every time he stops. He has to learn a cue means 'Do this until I ask you to stop.'
Stopping - Now you will stop him by taking the rein toward his hip. When the shoulder next to you stops and he steps over with his hip, release and praise him. Work both the go and the stop cue until he is consistent and light.
This is for crowding - You can now work the shoulder. Ask him to go forward, keep your hand about 4" from the bit on the rein, take the rein to the center of his neck and lift while keeping his feet moving forward walk the shoulder away from you. Release on one step and build from there.
When he is consistent with moving both shoulders, hips to stop and go forward, put him on a small circle. Keep him soft moving his shoulders off you if he steps toward you and thus giving him a soft nicely bent neck. If he pulls go to the hip. If he crowds go to the shoulder. Work the small circle until he stays soft and out of your space.
In your case you can now walk forward and use these cues to keep him off you as well as the cue to lower his head as Kevin mentioned if he gets uppity.
There is a whole leading lesson plan and this is just half, but it will help with the crowding for sure.