TB(brutally)H, c'est la vie.

Reasonable people only fight to defend themselves physically, or to bloody up another on 'principle' or 'honour' or on 'moral grounds' or some other indefinite concept. In the latter case, these just causes for violence are merely labels to justify their uncouth savagery. In the former case, there are no rules, no morals and no principles. But ultimately, it's survival and likewise people become animals, not as bad as those that take the moral high ground, but an animal nevertheless. It's not pretty, but face it, there's no medal for gallantry or 'playing by the rules', and if to survive you've gotta fight dirty then so be it.

This holds true in your case OP. Now you can lower yourself to the barbarism of your assailant by punching him in the face after the absence of an apology.
OR:
Bearing in mind that the status of a human being is subjective, you can refuse to acknowledge him as such. You can accept that justice has been served with his day(s) off of school (I know that sounds more like a vacation) and you don't have to take matters into your own hands. You turn it into a war of attrition, degrading his self-worth piece by piece. You can do it verbally if you wish, just make sure you're not the instigator. Make him redefine his vocabulary. Turn "Fear" into a synonym with "Jonathan" over time and if ever he tries to assault you again, well, defend yourself of course, but consider it a success - you didn't lower yourself to raw and crude forms of dispute resolutions first. :)

And then you can impregnate every female he knows. ;)