First get your dog to walk nicely on a loose, informal leash walk, making turns, changing pace where he's approximately next to you. Get that good. Get his "watch me" good.
Then what I did was use my clicker. I started out using a lure, but I caution against getting too dependent on that. Fade it asap. I used some really tasty treats like tiny hot dog pieces or homemade liver treats which a kept in my pocket and a few in my right hand with my clicker. When the dog would lag behind, I just kept walking along. If he took forever to catch up, I'd use the lure, then c/t when he was in position. But I'd give him a chance to try to get in place where he would get c/t. (clicked and treated) When he would take one step in the right position, c/t....2 steps, c/t. I'd keep those treats coming as long as he was in a pretty good position. Then gradually, I'd c/t only for better. And nothing for lousy. It didn't take him long to find out where he had to be to get the treats. The clicker just helps speed things along, marking precisely to him where it is that he's to be. I made it like a game, lots of turns with my luring hand (right) in front of his nose and pivoting around with a big motion....to make it silly and fun. It helped him on his turns. Soon, we made that more subtle and then eliminated that and just turned. You can use cones or something to make figure 8s around too. Lots of people don't like to use the right hand for the luring hand because it makes your shoulders tend to point in toward the dog instead of straight ahead which is no good.... so be careful about that if you use your right hand. I just have trouble holding the leash and the treats in one hand. You can hold the leash in the right hand and the treats in the left.
But that's just the way I did it. I'm somehow too uncoordinated to do it the other way, plus I didn't want my dog to have the treats or my treat-smelling hand too close to him. Later, when the dog gets pretty good, I'd keep the treats in my pocket. Or if he shows too much interest in my hand, show him that treats only come to him when he's paying attention to his heeling and not to my hand. If you dare, you can hold a treat between your teeth and help him to "watch me." Then spit the treat to him if he's a good catcher. Lyric is a lousy food catcher. So, I didn't do it that way. I didn't want him to break stride to sniff around on the ground for a treat.
Most people don't reinforce enough. Their dog takes a couple of steps in the right position and they hold out for more steps before reinforcing. It's important to reinforce often, every couple of steps which are good. (at first) That's what makes the dog repeat that nice heeling. Don't wait for perfection to reward. Reward baby steps and then as the dog gets better, withhold the reward and ask for more, then rewarding the better and better heeling.
When the dog seems to be repeating the good position, start using the word "heel." I think it's important to be careful about giving the cue when the dog is in a lousy position. He may attach the cue to that lousy position. Wait till he's in position. But I wouldn't even bother adding the cue in the beginning. He's got enough to think about as it is. Just reinforce the heel position for a while, then you can start sticking in the cue word when he's in that position.