The vision of a yorkie running on his hind legs cracks me up.
alaskayorkie gives some good advice (for once!

). My problem with Thor was not as bad as you describe, but I had corrected him literally hundreds of times, and he would still run in front of me. I tried the following technique ONCE, seriously, ONCE, and it had a permanent effect.
The purpose of the exercise is to teach your dog that he cannot take the direction you are going in for granted - he has to watch you. So take ten minutes to walk as unpredicatably as you can. RUN forward, stop suddenly, then shuffle to the right. Spin in circles, both ways. Walk backwards. Hop on one foot.
Yes, you will look crazy, but your dog will learn that he has to watch you to get his cue. Now when we walk, I can see Thor checking that he is keeping pace with me. Occasionally I will reinforce by turning around and walking in the other direction a few times, in a row, but that's all that is needed.
The article I got this from said that this is very hard work for the dog mentally, so let him play and relax after ten minutes. The last time I recommended this, the two people asking said their dogs were either heeling or walking slightly behind them after this exercise.