You need to change your expectations I reckon - expecting him to essentially be responsible for his own safety/behaviour (even with instruction) is too much at his age. Their impulse control isn't well developed and they don't have a good understanding of long term consequences, nor a developed sense of how to generalise (ie, you will have to be telling them and reinforcing every single time especially if something has changed e.g. you're in a new place)
Giving them the room to break the rules and experience the consequences of doing that is relevant but mostly appropriate later, when he's older. At his age there are a few things where you could allow him to do this, but mainly you need to be controlling his environment so that he can't physically do the things you don't want him to do, rather than letting him break the rules and then looking to punishment - this is not effective yet.
So I will try to explain what this looks like in reality as I understand it sounds a bit vague. These are the examples from your post.
The failsafe against this is to have a rule that he must hold hands, otherwise (and perhaps as well) you need to use some kind of method to keep him safe near roads which would be a buggy or set of reins, possibly one of those backpacks with the parent safety strap. If you have a double buggy you can use this, if you only have a single it might be worth keeping a sling with you for the baby in case you need to put the 3yo in the buggy. (Not sure how practical this would be in reality if 3yo is tantruming or trying to run away). It doesn't have to be a threat or a humiliating thing to have the reins on or be in the buggy. You just need to tell him that he needs to be safe by roads and he can do that by walking nicely or by sitting in the pushchair, let him choose if you like, but if he can't/won't walk nicely while holding hands on the side of you furthest from the road, then you override his preference and choose the one that gives you more control.
I would give him a non spill cup if he is spilling drinks regularly. If he's doing it on purpose, he can only have drinks when he is supervised. If he's doing it accidentally, a type of cup which is harder to accidentally spill would be better. I'd also stick to just water for his drinks unless you're supervising closely, as just water tends to be less of a problem if/when it does get spilled. Then you can just say oops a daisy, that was clumsy and get him to help you wipe it up.
Obviously this one is non negotiable. Supervision is key - don't leave them alone together ever. Try showing him some positive/gentle/appropriate ways he can interact with her - sometimes toddlers are trying to play but too enthusiastically. Always praise him when you see him doing something kind or gentle, even if it goes wrong - it's much easier to redirect if you say "Yes! How kind of you to share your toys with baby. She can't use this one yet. Can you bring her the .......?" rather than "No! She can't have that! Stop bringing her dangerous things."
If it's more out of jealousy or frustration, try to prioritise some one on one time with him regularly. Not in direct response to the behaviour, but having recognised that he is telling you (in a very immature way because he is only little) that he misses your time and attention and is anxious that you might love the baby more. There are some much more detailed sibling friction tips in the books The Second Child Book by Sarah Ockwell-Smith and Siblings Without Rivalry by Faber & Mazlish, which I'd recommend for sure.
If you're not quick enough to prevent an incident then many people do use naughty step for this and if you find it useful then fair enough. I definitely agree it's important to take him at least arms' length away if this happens and to point out to him that he has hurt her, but I don't know if the punishment is necessary on top. It has to be right for your family, so stick with anything that is working.
Again comes back to supervision, unfortunately! But I would also limit the amount of food he has access to, rather than giving him the whole amount for the meal, depending on what it is. This can also help for children who feel overwhelmed by seeing too much food on their plate. That might mean spoon feeding for something like porridge. Which although he is really too old to need it, might speed things up and increase cooperation in the morning. Or you could just make the porridge in a large bowl and put a small amount in a small bowl for him at a time. If he's having a "drier" breakfast like a banana and yoghurt, give pieces of banana one at a time and the yoghurt at the end - maybe even think about a different format such as frubes. If he's deliberately making mess rather than eating just take the food away and say something like "I think you're telling me you've had enough. Have you had enough?" If he protests, get verbal agreement that he will eat properly rather than making a mess before you give it back, explain this is his last chance and stick to that. Praise him if he eats neatly.
This one, I'd take a totally different approach to. Children often use eating as a control thing especially if they feel that other areas of their life are out of control. So the way to avoid food battles is (counter-intuitively) - stop expecting to have control over how much he eats and don't try and influence this at all. Respect the fact that it is his decision whether he eats or not and that he will be able to feel the effects of being hungry for himself if he doesn't eat. Offer reasonable food about once every 4-5 hours for meals and small amounts of the same kinds of food (fruit, veg, meat, eggs, cheese, bread, crackers, cereal, rice/pasta, yoghurt) for snacks about halfway between each meal time. This way even if he doesn't eat anything at one mealtime, he will have another opportunity to eat again soon. Avoid junk foods like crisps, sweets and so on or just have them as a totally separate thing to food that you eat to fuel your body or for nutrition. At 3 you can also talk about what food is for and why we eat different kinds of food (I would recommend not doing this at mealtimes as it can come across as pressure.) Even if you feel anxious, try not to put this across - he must think that you are totally unconcerned about whether he eats or not, which means not praising for eating lots, as much as not getting cross or pleading when he eats little or nothing. A healthy child without dietary restrictions or severe sensory issues is not going to starve themselves or even become particularly hungry before they start to eat again. Just keep offering a variety of foods and model eating yourself and he will get there.
Good luck and hope this is helpful :)