Assuming his doctor agrees he still needs a nap and moving bedtime up isn’t feasible…
This may sound drastic, but you might need to do a little stripping or shelving in his room. Put his toys only in the playroom and keep a few things on shelves that he absolutely cannot get to without adult help. (Meaning no chairs or step stools in the bedroom.) The ideal situation would be ALL toys ONLY in the playroom. This isn’t punishment; you aren’t taking away his toys from him whatsoever, you’re simply moving them to a different location.
Remove the frame of the toddler bed from the room. Put his mattress on the floor. If the frame isn’t there, the worst that happens is he pulls the sheets off. If that happens, after naptime, he needs to “help” you make the bed. Do it hand over hand if necessary. Don’t fix it until naptime is over, however.
What happens before naptime? Is it lunchtime? Be sure that it isn’t something dietary setting him off or giving him sugary energy that is difficult to burn off.
Does he have a quiet time routine before naptime? A story to relax, a cd of quiet, soothing music?
If he gets out of bed, give him minimal interaction. (Meaning, no eye contact, no conversation.) Carry him bodily and immediately back to the bed. Repeat as necessary. This will happen again and again the first few times as he discerns that this is the expectation that will not be deviated from. If his sheets are messed up, make sure he is draped with his blanket but do not acknowledge that he’s turned the bed upside down or whatever. Don’t use words other then, “It’s naptime. You need to rest.”
You might think it’s not working during the first few days because he’ll get up again or again. However, if you stop the process and just give in and let him stay up, you’ll be teaching him that he only has to protest long enough and hard enough for you to eventually cave. Stick with it, plan on putting him back in bed numerous times for a few days, and at the end of two weeks (it will not take that long, btw), see if it works better. If not, it may really be a dietary or allergy issue that doesn’t let his system settle down.