I practice Karate along with my son, both of us are brown belts. Whilst he is vastly better at defending himself than he would be without it, i doubt he could take out a kid who has a big size/strength advantage and the attitude to go with it unless he was composed and struck the bigger kid first in the right spot.
EDIT:Actually any of them will help as they are practice for physical confrontation and that is a big part of it, especailly for kids. For most kids that is the big shock and the thing to get used to.
If you really want to stop a bully, the best way is to put up one hell of a fight. I know this will get the PC crowd up in arms about discouraging violence and mediating etc, but Bullies are basically cowards looking for easy prey, If your son fights back and goes nuts, and hits like a helicopter and gets a few in, he may not win, but will make the bully think twice about approaching him again, as he is no longer so easy.
So next time he headlocks him, tell your son to either hit him in the nuts, or grab and tear at them for all he is worth, it will leave the bully with a lasting memory for the next time he considers having a crack at your son.
I bet that skinny kid hasnt gone near the fat kid he was bullying that was all over the TV after being picked up and thrown around.