He sounds tired.
Over tired.
IF he naps, what time was he going to nap?
Maybe make nap after lunch.
Early enough but in the afternoon, so he can get rest.
But not so late in the afternoon that it impairs bedtime.
Or make his bedtime and/or dinner time, earlier.
Sometimes also, a child needs to "deflate" from their day. This is how they do it. Especially if they are in school. It tires them out. It is a long day for them. My daughter is like that.
So, after school, I let her deflate. Doing something very calm and relaxing. So that she can switch gears.
Or is he hungry?
Some kids, need to graze throughout the day.
If not, their blood sugar drops, and it can bring on emotionality and tantrums. My daughter is like that.
She has to graze throughout the day.
I get like that sometimes too.
Also teach him how to use his words.
Teach him the names for feelings and for what he wants.
Even if it is happy or grumpy feelings.
That way they do not get all pent up.
From 2 years old, I began teaching my kids the names for feelings and how to say it. From 3 years old, my son could tell me if he was "irritated," "frustrated," or "grumpy." And he knew the difference. He would say it. He would tell me.
Also, when a kid is hitting milestones or growth-spurts, sometimes this really tweaks them. They are changing cognitively. And it is like growing-pains. Not easy for them either.
have you tried also just talking with him... and seeing if he can articulate why/how come he feels that way or acts like that?
Sometimes it is surprising and eye opening, what they say.