Teach leash pressure. He applies pressure, stop in your tracks. The moment he gives any, absolutely any sort of slack, mark "yes!" And reward at your person. He will learn pulling gets him nowhere, letting off pressure is more rewarding, and the rewards are near you so naturally he will be coming into you more and more and eventually staying at your side which you can also reward for with your reward/treat hand treating directly down from your hip. My girl could feel the slightest bit of pressure on the collar and would expectantly turn around for a treat!
This will take a lot of small sessions. Building a good foundation takes a lot of time, repetition and reinforcing. You obviously won't get anywhere like this for some time so when you do need to actually WALK, either prong collar such as for going to the vet, or train for a short 2-3 min session then release him with a release word to go sniff as reward. When I was teaching loose leash I would take my girl out on her prong, her flat collar, and harness. Prong to get from the parking lot to the trail safely. Flat collar to begin training leash pressure for short sessions. Then switched the leash to harness and used a release word such as "free" to go sniff after a successful training session. Rinse and repeat
Sometimes the reward would be a tug. Sometimes treats. The variety keeps them guessing!