The methodology to find out if you can upgrade a CPU is generally to go to the motherboards manufacturers website,look under support especially for CPU and find out there.It usually works.
I looked here at their support site and couldn't find anything on that motherboard even under their archives.However this is probably because the MS-7046 motherboard most likely has another name for it and that's just the model number.
I am guessing that it's probably one of those 915P motherboards since it uses the 915P chipset.The motherboard supports Intel Pentium 4 Prescott LGA 775 processors.
http://www.msi.com/index.php?func=prodarchive&maincat_no=1
I did find a manual looking here though
http://217.110.237.67/Manuals/7046-engl%20v1.0%20-%20MS-7046.pdf
Doing a google search though I did catch a glimpse that stated
"CPU Intel Pentium 4 (3.2 GHz) Motherboard MS 7046 ... That chipset doesn't support any Core 2 processors and it doesn't support Pentium D too."
It is however an early socket 775 motherboard but it seems that you're out of luck.
$200 as a budget is generally too cheap to consider.
However on the low end it's possible to find some inexpensive motherboards,a CPU and RAM that would cost around the $200 mark.Even a new current low end budget CPU would easily outperform an obsolete 3 Ghz P4.
Once you change the motherboard though you will need another license for Windows which will set you back another $100.
So perhaps it would be best to raise that budget for a $450 -$650 new budget PC system for your son.Other people at this forum would be glad to make some suggestions.
Edit I see that Gulli already made a new components suggestion.