My daughter started this issue (also smelly pits!) in 2nd grade -- so it could be a pre-pubescent thing. Of course, check with your doc about it just in case it means something else (e.g., diabetes sometimes makes one smell "fruity" for example).
In the meantime, try a "clarifying" shampoo OR a dandruff shampoo (really gets the scalp extra clean). Another option (though old fashioned) try rubbing baking soda through it (use it like shampoo) -- a friend says it adds squeeky-clean shine to her oily hair. Or, try rinsing with vinegar (again, this is a clarifier).
In comparing notes with friends, I've noticed the curlier one's hair is, the quicker it gets stinky (I've got poodle hair, myself). A beautician told me it could be because curly hair is porous, so collects minerals (from the water), residue (from products, conditioners) and smells (like smoke) more easily.
Hope one of these thoughts hits the button!