Yes, he can learn. If I bought a horse that ate on the trail I would change it.
As you have a bum shoulder the easist way would be to ride with a halter on in addition to your bridle & tie his head so he can't put it down farther than you want it. When he dives his nose down he'll stop himself but you should still give a verbal correction each time. It may take a while but he'll soon give up.
This is not the safest thing to do if you ride on really big hills as he'll need his head free for riding steep hills.
The other way is to ride him forward hard whenever he starts to lower his head. Every time.
I believe there is also an anti-eating overcheck device you could buy. http://www.horseloverz.com/Training-...own-Strap.html