My daughter had cyclical behavior that really became apparent around 4 yrs old as well. Have you looked at www.feingold.org? It has really helped us.
Another thing to consider is if he may be reacting with an autoimmune response to other children getting sick. Children with autoimmune brain reactions will not get a typical sore throat, etc but show it in behaviors. I would get a 72 hour strep test and check the symptoms of PANDAS on www.webpediatrics.com
As far as food-related (beyond checking the Feingold program) look into food dyes- is the behavior corresponding to birthday treats? Most people are quick to blame sugar, but it could be a food dye issue. Food dyes make my daughter very hyper and aggressive, within minutes! Or could he be getting hidden dairy in treats at school?
Soy can be bad and I would limit it if possible. There is an Earth Balance that is also Soy-free and there are alternative milks, like rice, hemp, and nut (some of which you can make yourself.)
Let me know if you want to chat further. My daughter is diagnosed with PANDAS and I am happy to give you more info.