I personally don't like head halters. So my suggestion is: before you go out and get a head halter, I would first advise you to try and train with a regular nylon collar and leash.

Practice in a low distraction area, like the living room or backyard. Start walking your dog. As soon as you feel tension on the leash, STOP walking and abruptly turn around. Your dog will pull again. IMMEDIATELY stop and turn around. Dog will pull again. Again, immediately stop and turn around. Keep this brisk and fast fast fast! Keep moving!! Never stand in one place longer than 3 seconds. Keep moving. As long as your dog is pulling, you will keep stopping and turning around. After a while, your dog will start to give up and stop pulling. As soon as you sense this, reward him for walking close to you (a clicker is great for this). When he starts to give slack on the leash, you start doing random turns. When your dog follows you, click/treat and continue walking.

Then, practice practice practice! Practice in your living room, your backyard, your front yard, up and down your street, around the block, around the neighborhood, downtown, etc. Practice and don't give up before your dog does!

In the first stages, your dog will give you some slack on the leash and then randomly pull again because he doesn't really understand what the concept is. That's okay. Stop and turn around and do some circles, zig zags, figure 8's, etc. until he gives you slack again. Click/treat. Continue with your walk.