Hi B.,
I am 33, married, have a 7 yr old daughter and 5 yr old son, and can relate to everything you are saying. =)
It is possible that part of your son's "acting out" is because his younger brother might be "babied" a little more so this is his way of trying to get the attention back or maybe express his frustration when he is told he needs to be a certain way because he is the "older one." I thought of this especially when you mentioned that he gets in trouble for hitting his younger brother. The 3 year old probably gets into his "stuff" and is not as aware of how to share, interact with his sibling, so your 5 year old is trying to deal with this. I hope that the 3 year old is also reprimanded if he hits his older brother. He probably acts defiantly a lot because he might see that when his younger brother throws a fit, he is given some more leeway. So he thinks if he is defiant enough, he can get his way too.
I've learned that it seems phases are going on "too long" and then we begin wondering if it's more serious than just a "phase." I don't think you should feel any "embarrassment" when he screams in public. Sure, it makes everyone stare and you feel like a terrible mom or disciplinarian, but who cares what others think? The important thing is you, your children, and your relationship with them. Try not to let him feel he is embarrassing you...just deal with what is happening. Set some ground rules like: In our family, we do not scream in a store and have a tantrum like this. If you do, we will leave. (and you must stick to this). If kids throw screaming fits in a store, you just ignore the screaming, finish the shopping, and have a discussion about it at home. Another rule to set: In our family, hitting is not allowed. No one is allowed to hit anyone, no matter what. Even though it will happen anyway sometimes, if it's a family rule, they will be taught that it is never acceptable to hit each other.
I would also be careful about "labeling" your children because of self-fulfilling prophecies. If he is told he is "strong-willed" and a "drama queen," he will surely believe this about himself...after all if his mom thinks so, then he must be, right?
Being a stay at home mom can be tough, where you have to have buckets of patience and you have your kids with you almost all the time. I've found that forcing myself to be more patient, talking to my kids like adults and reasoning with them the same way, and always getting on my knees to be at their eye level when I talk to them, and treating them with respect...it works much better than having a constant battle going on.
I hope this information is helpful. Good luck.
=)
* PS I saw some responses that say to get him tested for ADHD, etc. PLEASE keep in mind he is a child and children are not perfect and neither are adults. Perhaps he could be diagnosed in the future with something but then us adults could go get some Valium and be "mellow" all the time. There is a huge problem in this society of going overboard with diagnosing children with mental disorders when it's simply them being children.