I tried a supplement that contained St. John's Wort, but it gave me violent mood swings. I had tried the other ingredients before without any problem, so it was either the St. John's Wort or some kind of interaction. I stopped taking it after a few days and returned to normal (for me, that is).
I've had some success with fish oil, but it was high doses of pharmaceutical grade fish oil, usually 6-8 grams/day, over 2-3 months. It wasn't a dramatic improvement, but I did notice improvement with regard to my moods. I would like to keep up this regimen, but I can't afford it; good quality pharmaceutical grade fish oil isn't cheap. I only take 2 grams/day now. If you like I can PM you the specific product I use.
Have you tried adjusting your son's diet? I found that being on a predominantly vegetarian diet made me feel better overall. Unfortunately, I can't afford that either. He doesn't necessarily have to become a vegetarian, but it's possible making adjustments can help. I can't offer any specific advice, but you might be able to research how diet affects moods and see if there's anything worth trying.