My 3-year-old son is great, but when he is angry/frustrated with something we do, mainly when we punish him or do something he doesn't like (e.g. when we tell him he's had enough tv), he starts crying. 

He expresses his frustration verbally (which is fine), but then he starts throwing things! 

I am not talking about something he had in his hands; I am talking about him grabbing anything around him and throwing it to the ground. 

If his baby brother is close to him, he instead goes and hits him. 

Usually, when he does that I give him a 3 minute timeout, and I explain to him afterwards that it's ok to be frustrated and to express yourself, but that what he did is wrong and he can't keep throwing things. But it's not working and he continues with that behavior.

How can I approach this problem and change his behavior?