Hi M.!
I'm going to address your problem with the dog dishes, as a Mom who also raises dogs (rescues and rehabs) around the kids. It sounds like you are leaving the food and water out for your dog all the time, and that might have to change. Dogs in our house are always fed just twice a day, the food goes down for 10 minutes and what is left after that is either throw away or put up to offer again later (depending on what I've fed them and if it will keep). The water is a little harder to do since dogs need to drink a lot. You can either try just putting the bowl down for a few minutes several times a day for the dog, then putting it up out of your boy's reach. Or, you can find a heavy duty tip proof bowl that your son won't be able to pick up. He'll still be able to splash in it and drop things in, so if you don't want that either, you might have to go the first route.
The kennel suggestion isn't a bad idea either, and if your dog is already crate trained, this would be a breeze. Keep the food and water in there and keep the kennel door closed. Once the dog learns the routine, he will let you know when he wants to go into his kennel for food or water, and you can close him in there for a bit while he eats and drinks. This will solve the issue of his being territorial around the food also; that is THE LAST thing you want between the dog and your boy!
Good luck!