I've tried gently holding his hands and saying "no hitting--I won't let you hurt me, we need to use gentle hands" but then as soon as I let got he does it again. I've tried holding him on my lap and not letting him get up for a minute, which makes him cry and then he usually kisses me and we move on. Sometimes i end up putting him down on the floor and telling him I cant hold him while he's hurting me, which usually leads to crying and asking to nurse. Today, though, he's been smacking me in the face practically every time I was holding him, even just now at bedtime while nursing. I finally ended up yelling at him, which then led to him hitting me AGAIN. I'm really at the end of my rope and out of ideas, since nothing seems to be working.
He's very precocious and verbal, so he knows what I'm saying. He is a spirited guy who is extremely sensitive about disruptions to his routine, and has zero frustration tolerance, which has pretty much been true since day one.
Any suggestions on how to handle this?