No adult dog is going to naturally think that they are below a toddler within the family, which means that when he thinks your wee boy is out of line it's entirely appropriate for him to 'discipline' the boy. By having your boy (and your other kids) feed the dog his dinner sometimes, it reinforces to the dog that his place in the family hierarchy is below your kids.
In terms of challenges for your dog we had friends with a rigid rubber 'thingy' (looks a little like a ball) that they put peanut butter inside. It took the dog about a hour to lick it all out.
Edit: while I never knew about it with any dogs I had growing up, have you looked into the clicker method for training him? We've found some pretty good videos that use it (our kids are a big fan of Dazzle)