A harness will make it harder for him to grab the leash in his mouth.
I like the "walk randomly" technique. Basically a variation on the stop and reverse idea. I put some treats in a treat bag or my pocket. I go outside with the dog on a regular 6 ft leash. I walk one direction for 20-30 feet, then turn a half turn and walk that way 20-30 feet, then turn another direction and repeat. Usually, the dog will start to follow and then pass by and start to pull; you want to be turning before they start to pull in the direction you are walking. He may follow you or he may keep going his way and hit the end of the leash. You look like an idiot to anyone watching, but just keeping going off in different directions. Don't tug him along, let him hit the end of the leash and figure out that to avoid that, he has to pay attention to where you are going and keep up with you. When he starts to get this and makes a turn with you (and doesn't hit the end of the leash) quickly slip him a treat. Don't use treats to lure him, only use as a reward after he's correctly stayed with you.
You can do this for a few hours one day, in the yard. Then you can start off each walk with a 10 minute refresher/reminder of it.
Don't repeat commands. You don't want to "burn" the command and have it be useless. Let's say you want him to "Come" so you say "Come" and he doesn't, you say it 3 times in a row and then he decides to listen. What you have just taught him is that the command is actually "Come...Come... COME"
Instead, give the command once and then reel him in on the leash or stand there and wait for him to stop pulling and then reel him in. You might stand there 20 minutes. If he's on a long leash and you call him to come back to you, if he comes freely, reward with very good treats. If you have to wait and/or reel him in, then praise him once he returns but no treats. Then let him wander back to the end of the long leash and repeat.
I like the "walk randomly" technique. Basically a variation on the stop and reverse idea. I put some treats in a treat bag or my pocket. I go outside with the dog on a regular 6 ft leash. I walk one direction for 20-30 feet, then turn a half turn and walk that way 20-30 feet, then turn another direction and repeat. Usually, the dog will start to follow and then pass by and start to pull; you want to be turning before they start to pull in the direction you are walking. He may follow you or he may keep going his way and hit the end of the leash. You look like an idiot to anyone watching, but just keeping going off in different directions. Don't tug him along, let him hit the end of the leash and figure out that to avoid that, he has to pay attention to where you are going and keep up with you. When he starts to get this and makes a turn with you (and doesn't hit the end of the leash) quickly slip him a treat. Don't use treats to lure him, only use as a reward after he's correctly stayed with you.
You can do this for a few hours one day, in the yard. Then you can start off each walk with a 10 minute refresher/reminder of it.
Don't repeat commands. You don't want to "burn" the command and have it be useless. Let's say you want him to "Come" so you say "Come" and he doesn't, you say it 3 times in a row and then he decides to listen. What you have just taught him is that the command is actually "Come...Come... COME"
Instead, give the command once and then reel him in on the leash or stand there and wait for him to stop pulling and then reel him in. You might stand there 20 minutes. If he's on a long leash and you call him to come back to you, if he comes freely, reward with very good treats. If you have to wait and/or reel him in, then praise him once he returns but no treats. Then let him wander back to the end of the long leash and repeat.