My advice: take him on walks more often, many times per week and you may find that your dog becomes much more used to the environment, thus needing to pay less attention to all of the triggers around him. Don't let it get you down, like anything with dog obedience, its often the frequent corrections and work that get you the results you want.
We have a Labrador Retriever, 1.5 years old. We do not take her on walks as often as we should, we know this very well, but we also live in a climate that rains a lot, so it's not always the most fun taking her out on a walk and then having to dry her off (she is an 'inside-dog' for most of the day).
Something I have found to be interesting though, and might be stating the obvious, but the more often we walk her, the less she attempts to run off and/or chase objects. She is a much better/behaved walking buddy when we take her frequently. I've also found that she is a wonderful dog to run with. Running wears her down much faster and then walking afterward becomes easier and she is less interested in other things.