I used to have almost the same issue with my mare, right down to the same behavior you describe when you apply more leg. I started to ask her to give me a free walk when I started to feel like she was about to start pulling or leaning. I always asked at a moment when she was only just starting to get heavy so that my release of the rein was not a response to her pressure. Asking for the free walk allows her to stretch her neck out and take a break while still being a part of her job and my idea. It takes different muscles for him to carry himself this way so you have to slowly build him up. Little by little you can increase the time between asking for free walks and hopefully this will build up his fitness and he won’t be relying on you to carry him so much. This is what I have done with my mare and it has worked wonders.