It's hard having to deal with your child hurting others and the fears/frustrations of other parents. Please don't be too hard on yourself... Your son sounds like you have a very normal 2 year old active ruff and tumble boy. Don't consider him mean. Most likely when he's not able to get his point across with words so he uses hands or mouth.
I've seen this with my son and at the preschool where I work. To an adult we may not notice an interaction, but maybe a child has a toy he wants or won't play with him. The child gets frustrated and doesn't know what to do, so tries to get his/her point across with actions. Sometimes leaving a social situation before your child gets overtired helps too.
Make sure he understands that it is NEVER OK to hit or bite. but it is OK to be frustrated and angry. Asking WHY he did it usually doesn't help. Depending on how verbal he is you can ask "Are you mad, sad or frustrated with ... (the child he bit/hit)?" Then help him figure out what to do next time ... ie. tell the child he wants a turn, if other child doesn't listen ask an adult for help, etc.
The good news is that with understanding and maturity children do learn to reason and express what they want with words. Getting your son to understand and start learning to recognize his feelings and put them into words now will help when baby comes along... not only with the divided attention when baby is tiny, but also when baby starts moving and touching his toys.
:) Hang in there! Best wishes! Jennifer