L.B.
He's just mad because he didn't get what he wanted. The problem is, because he's only 4, he really doesn't have the verbal skills to say I'm mad at you because you said this or did that.
He needs to be given the words and shown how to act when he's mad. So you might say something like, "I know you're mad at mommy because I won't let you...." and verbalize it for him. Then you would add on to it, "It's okay to be mad it's not okay to kick, scream, etc." Then give him options. He can punch pillows, he can cry (as long as it's just crying), he can whatever.
Once he has the words to communicate with you and a way to express the anger that is appropriate, the tantrums will stop. He still won't like being told he can't but at least he'll say "I'm mad" instead of throwing a fit.
I used to do this with my daughter all the time. She'd start crying about something and I'd say things like "I know you're mad" and then I'd tell her she was allowed to be mad and give her ways of expressing that anger that were okay. She's now 7 and quite verbal and will always tell me when she's mad usually well before there are even tears. It does work it just takes time.
Good luck!