I've had a lot of luck in similar situations with telling them what they *should* do. He's hurting himself to get your attention/sympathy, when that is what he wanted in the first place. So, give him something he can do to express that in a way that he knows will work for him. The next time I saw him about to hurt himself (or expected he was going to from being told no, etc), I would intervene beforehand and say something like, "Ds wants x. Mama needs y. Mama will y, then ds can x. Ds can z while he waits." Then be quick and follow through. Sometimes do his thing first, but also before he's gotten upset. Like when he was crowding your dh. You dh could (sometimes) say, "Hey ds, I think you'd like some daddy time. Let's go (insert favorite activity) for a few minutes and then I'll finish cutting." I might also at times give my kids the words, "Daddy, can I help?" And then help him help! Or "Mama, I need something to do." And then find him something!
At this age, I think it's all about teaching them to communicate respectfully and effectively.