As for the kids, maybe recruit just a few volunteers, not the whole class. Start with maybe 3 or so, then maybe 5, then maybe 7-8, and work your way up instead of trying it with the whole class. Also maybe try(in a controlled environment with a controlled helper) having one child play with him, all excited and super fun, and call him to you. Not too far away, and if he likes toys at all, have his favorite toy with the most ANNOYING squeaker you can find. Giant jackpot if he comes to you. If he doesn't, kid stands up, fun ends so you're more exciting all of a sudden. Then maybe two kids playing with him when he's ready for that.
If you can do this in a park, have him on a long line playing with the kid. Try running past the kid with annoying squeaker. Rapid movement + noise + MOM!
Read through the responses in
this thread--had a conversation on self-control exercises, which would be great for this as well. Being able to call him away from kids means you are more interesting, and therefore makes it easier for him to concentrate on what you're asking him.
Also, try using crazy high value treats. Rolled dog food works best for my dogs. Stinks terribly and they love it, lol. Another great high value treat is my
Peanut Butter Oatmeal Chunks.
As for the walk, do you do anything fun during the walk? Or is it just...a walk? If it's the latter, try making it more exciting. Stop every once in a while and do tricks to make him enjoy it more and be a little more tuned in to you. Stop or change directions at random so he's caught off guard and wonders what you're up to. Even though he doesn't pull, one leash training method that is very very tricky but works awesome would help a LOT.
IF you choose to use this just be sure that you do not drop treats TOO often, or you will reinforce his sniffiness.
Start in the house. With him on leash, walk around and drop treats at random. Walk a few steps, and without being obvious, drop a treat. Few more steps, drop a treat. Continue walking the entire time, fairly slowly. Your dog will start to look at you to see where the treats are coming from. CLICK, JACKPOT!!!! Walk, walk, walk, walk...drop treat....continue this until he is looking at you as you walk along, or checking in with you every so often. Be very careful not to drop so many treats that he's just constantly sniff sniff sniffing. He already does that. You don't have to reinforce it. This method would probably work great for you, so long as you do it right.

It works really well, just a matter of using the right amount of treats.