Okay: I have a 4 year old boy.
To me: Your son sounds over-tired.
When my son is over-tired.... he gets "hyper" and fussy and turns into a fussy Troll.
My son, naps every afternoon. He needs it. He will even tell me sometimes
"I'm tired, I want to nap."
When a child is over-tired, they get, less tolerance and less patience and get more fussy and 'defiant' because they cannot control, their over-tiredness nor their biological cues. For needing sleep.
And yes, their impulse-control, gets less, too.
Kids this age, if not taught, do not have the natural ability to express themselves nor to say how they feel. Nor know, how they feel.
So you have to teach them.
And teach them, "coping-skills" and how to communicate to you, when they are feeling grumpy or tired.
My son does. He WILL tell me.
And then we both, as a "Team", help him.
Kids will also act this way, when hungry.
And when going through growth-spurts, they need to have adequate intake. Even if just a banana.
Your son sounds like an over-tired 4 year old.
all the best,
Susan