Poor you, can imagine this is really hard.
I think he's too little to be able to verbalise his feelings in any detail. Which isn't terribly helpful but explains the 'I don't know'. It'll take a bit longer for the positive attention to work through and change his environment so don't give up on that.
In public, I'd keep a VERY close eye on him, watch for any triggers, and intervene as soon as you can see him getting ready to hit or throw. When he's done something wrong, make sure other parents can see you react fast and remove him from the situation, telling him NO or whatever phrase you use - so other people know you aren't permitting this behaviour and so he knows there are immediate conseequences and there are boundaries you will enforce.
Keep it simple when you tell him off or remove him - don't use long explanations (or lengthy instructions) as they go over their heads.
Develop your voice of authority - a very calm but firm 'mummy is not messing around now' voice, not shrill or high-pitched or asking him to behave. For some reason it's easy to slip into negotiating or asking (I do it when I'm not being careful!) but you need to be in charge and sound like it. Practice in front of the mirror if you have to!
Hope someone else comes along with some ideas too. Agree this is probably a developmental stage he will grow out of. But in the meantime he needs to be reassured that you love him, and that includes very obvious even exaggerated paying attention to what he's doing and intervening when he gets carried away - children like to know you care enough about him to keep an eye on what he's up to. Sometimes they act up to get attention and it's reassuring to know 'mummy won't let me get away with that' as it indicates you care about what he does esp. if combined with some positive attention.
HTH