I doubt that it's either his shampoo or his diet. Hair thinning and loss is actually pretty common in children, and I see it often in my practice. In this case, the thinning could be from the braids. Occasionally, tight braids or ponytails can cause hair loss, something called traction alopecia. I suggest taking out the braids and maybe cutting his hair very short to help with the unruliness. If you don't see any growth after a month or so, or if his scalp is red or irritated, it's definitely worth making a call to the doctor.
Although it's rare, certain medical conditions, such as hypothyroidism, can cause hair loss, as can fungal infections and seborrhea (cradle cap). Some hair loss is also normal -- it can occur after an illness or stress, or for no apparent reason. In both situations, the hair grows back in its own time, although it may take weeks or months.