I agree with a ground manners course...dressagebelle has given some great things to start with.
That said try to make sure you stay in a position in which you are to the side of the horse...if he does get in line with you and to the front of you, there is no way you can stop him, regardless of how long of a lead you have. BUT if you can get to the side, you can pull him off balance, and back in line with you.
I second using a rope halter...if you can find one, get one that has the extra knots on the noseband, for a little extra "bite" for the time being. I hate flat halters, for the reason that they are so easy for a horse to lean on. The only time I use them is for trailering, and halter classes at shows.
"The ideal horseman has the courage of a lion, the patience of a saint, and the hands of a woman..."