I hope it's ok for a non-dom/me to answer here, but speaking as a subby I can say that the absolute best way to punish me would be to just flat out ignore me. That hurts a lot more than any kind of physical punishment. Personally, I'd rather get a spanking for being good than out of anger anyway! Giving him what he wants for acting up is just positive reinforcement of bad behaviour.
Have you tried a time out, or alone time as punishment?