Yes, a 12 year old can be charged with assault. Cases like these are handled in juvenile court. If your son assaulted another boy who was simply calling him names, (picking on), he is probably guilty of assault; words, generally, are not legally sufficient provocation to justify an assault. However, if by "picking on" you mean the other boy was physically contacting your son, than your son may have acted in self-defense.
Unfortunately, what was just a kid fight when we were kids no longer exists today in the time of zero tolerance and school shootings. If your son has some defense as to why he got into the fight, it is likely an attorney can use this to get the charges reduced.