I believe that B6 works because it's important to turning Tryptophan (Amino Acid) into Seratonin (Neurotransmitter which effects mood). That's the only reason I can see or think of for B6 to be used in this fashion.
An important part to keep in mind about this process is, Tryptophan isn't produced by the body. It has to come from our diet for it to be available to the body.
http://en.wikipedia.org/wiki/Tryptophan
On the Wiki article for Tryptophan, there's a chart showing foods that have Tryptophan in them, if you were wondering. He needs to eat foods that have it in them so it's available to his cells.
His response to the B6 will hinge upon a few factors. B6 levels, Tryptophan levels, and Serotonin levels since before he took the B6.
If the tryptophan levels are present and the B6 is present, it'll begin to convert to serotonin in the brain, which improves mood. If the serotonin levels were low to begin with, it will take longer than if they were normal to begin with. It's also a pretty time and energy intensive process for the body, so it will do only so much at any one time. Which means it takes time for noticeable levels to be made.
So, my advice would be to make sure your son has the foods that provide the nutrients he needs, and be patient.

In a month if there's no change, then it's probably not working, however for the time being it's good to allow his body to do what it's designed to do. If he's got all the right building blocks for the process to work, it'll happen on its own.
EDIT: Side note: It also wouldn't do any good to overload him with those foods, or with B6. Because the body can only use so much at any one time, any excess gets pushed out of the system. So it's not possible to speed up the process by essentially taking huge doses of either, because the body will grab what it can use at the moment, and get rid of the rest. So just make sure they're a part of his daily routine.
