M.P.
You cannot reason with an angry person even it that person is 3 years old. When anyone is angry it's human nature to strike out at the person trying to physically hold them. The logical thing to do was to put him down and stay out of his reach. This may mean returning to the house. Put him down and let him have his tantrum.
Instead of time outs, try putting him in a cozy place so that he can cool off. But only do this if he's not physically tantruming. The best way to handle a tantrum is to ignore it.
Have you tried diversion instead of saying no? "You can't have the TV control but you can have this truck with the buttons on it." If he starts to punch, kick, etc. ignore him. Stay out of his way. Once he calms down tell him that you can't let him hurt you. Then send him to his room or a quiet corner you've arranged and tell him it seems he needs some quiet time to get himself together.
He doesn't have to nap. He may have outgrown the need. But he can rest. Again have a quiet place for him to play quietly.
How do you teach him to stay in time out or in his room or in a quiet place? You spend several days calmly and consistently putting him back in the space. You do this calmly, unemotionally.
It's so easy to get angry when our child is angry. We also feel out of control. It helps to realize that you have all the power and he's wanting to be more in charge. Find ways that he can make decisions. He can choose toys. He can choose clothes. He can choose food. YOu decide on two alternatives and give him a choice.
This might work with time outs. First don't try to put him in a time out while he's throwing a tantrum. Wait until he's expended his angry energy. Then give him the choice of a time out on a chair or go to his room for some quiet time.
Sounds like you're having power struggles. Find ways to back out before you get upset. If he sees that you don't get upset and will enforce the rules he's less apt to throw a tantrum.
The hitting is caused by you trying to confine him. Do not attempt to touch him when he's angry.
Car seat: He won't allow himself to be buckled in and starts physically fighting, step away and wait for him to calm down. Don't expect an apology at this point. Just buckle him in. It's been my experience that preschoolers cannot out wait a parent. It may take 10-15 minutes but you've saved yourself a physical battle.
He doesn't have to eat. I suggest you try giving him choices of what to eat at least part of the time. Getting a child to eat is also a frequent post on this site. Fix one thing each meal that you know he likes. If he eats, fine. If he doesn't fine. No snacks later. He won't starve. He will eat when he's hungry if he's not engaged in a power struggle.
Your son is testing the boundaries and wanting more independence. Find ways to give him some control and he'll fight you less. It will also help if you can accept that you cannot force him to do anything. I suggest that some of your physical battles is you staying involved with the idea that it's your responsibility to force compliance. You cannot. You can provide consequences once the tantrum is over. You have to consistently provide a consequence that you can enforce every time he doesn't follow the rules. If you can't calmly make him stay in his chair by repeatedly returning him to his chair it's better to find a different consequence.