J.,
I'm glad to see the other posts have been telling you you're not a bad mom. All kids (and grown ups) have bad days/moments.
I agree with the post who said that you need to be willing to just leave if you can't get control of your son (or he can't control himself). I think it sends a powerful message that he looses the privledge of being out with you if he can't "use his words. With that said, it's not always realistic to just leave - family functions, church, etc. I still suggest leaving the situation - dinner table, attraction, etc. whenever possible. Take him in a corner, bathroom, wherever there is as little stimulation as possible. Then tell him that his behavior is not acceptable and he need to use his words.
I think a lot of the "terrible twos" can simply be attributed to NOT being able to talk well OR being tired.
Try to be prepared for his outbursts. See if you can determine a pattern for his tantrums - is he getting frustrated becuase he's having problems talking? Is he overtired when you're trying to go grocery shopping?
The best "new" advice I haven't seen here is try to keep your son on a schedule. I've seen A LOT of unnecessary problems with kids simply because Mom had to "get one more thing done".
A good schedule that has worked VERY well for my family (I'm a SAHM) is that we run errands/do preschool in the morning. We come home for lunch, then we nap/rest. Then usually spend the afternoon playing, reading, going to the library (kids' stuff) until dinner time. Then I cook while they read/play in the play room until Dad gets home. Since you're working, see if your daycare provider can give you a copy of his schedule and try to stick to it, even on the weekends. Respect his naps/bedtimes to reduce outbursts.
If/When he does "melt down" address the immediate issue - spitting, hitting, etc. until he is calm. I like the hand holding technique the other parent posted. Let him know that he needs to use his words and that "we don't hit". He should not be allowed to return to the activity until he promises to "be nice" and say he's sorry. If he does it again, Leave. Then next time you have to go to the grocery store or wherever and he wants to come, tell him "I'm sorry but you didn't behave last time." It reinforces that if he won't behave, he doesn't get the privledges.
I tell my kids BEFORE we go into a store or restaurant, "If you don't behave, then they will ask us to leave. They only let NICE children come in." This really seems to help them to understand what is expected from the get go.
Best of luck! Be consistent and he'll understand what's expected of him.