
Firstly, yay you for asking WHY first, before asking 'how do i stop it'.
The key to solving most problems starts with finding out WHY its happening.
At first i thought your dog is either, scared of cars and is trying to 'chase' them away with his behaviour (a behaviour which would be very self rewarding as the dog wouldnt realise that the cars are going to go away anyway).
Then when i read the part about cats, that makes me think this is less likely to be a defensive, fear type behaviour, and more a chase instinct behaviour.
Some dogs have a very strong drive to chase things and they can be 'turned on' by cars quite easily, as well as the more usual things, ie joggers, bikes, sheep etc.
Its still possible he is defensive and worried rather than excited and wants to chase, but its much less likely so ill work on the idea that he wants to chase.
The grabbign the lead and shaking it is a redirection of his frustration. He CANT chase because he is on the lead, so he needs an outlet for that frustration, and his outlet would be grabbign the lead and ragging it? Is that whats happening?
Firstly, you need to make 100% sure he can never get away from you. He could get run over or he could grab someones cat and kill it - he may not, but its not worth finding otu really.
I would introduce him to a head collar, there are various versions and i suspect one where the lead ends up at the back of his head would be better than one where its under his chin - you'll have to try a few types before you find one that suits. I know there IS one where the action f the lead is at the back of the head though, and that may be the best (cant remember its name).
Use that with a double ended lead and a secure flat buckle collar or a secure harness (pref not a harness that has any 'stop pulling' type action, just a normal one).
I would never recommend using a headcollar without the lead being attached to something else secure on the dog as well - some can be removed by a deft dog, and most will cause a lot of damage if the dog is allowed to lunge to the end of the lead as the dogs head can be snapped back with a lot of force.
Now you have a secure dog (make sure with treats and gentle exposure to the headcollar that he is happy wearing it)...
You now have control of his head, he should be less able to reach the lead and he is much less liekly to be able to get away from you.
Now you need to redirect his behaviour from wanting to chase, to 'something else'.
You will really struggle if you simply attempt to STOP the behaviour, dogs respond much better if you give them an alternative and in your case your dog is already suggesting one.
Get a decent ragger toy, preferably one wtih a loop you can hang on to, taht is quite distinctive and NOT a lead. (one with a ball on the end perhaps?).
Get him used to playing wtih this if he isnt already, and make sure he is happy to leave it when you ask (the best way to do this is to sasy 'leave' and then cease to play - keep hold of the toy but ignore the dog, dont respond, dont pull back just go 'dead' - when he lets go, reward him well with more fun wtih the toy).
Now when you walk him, staying at a distance where he knows there are cars or cats about, but not close enough to really drive him loopy, whenver he shows interest in them, offer him the toy to play with.
Gradually build up that distance so you get closer and closer - if its too much and he cant concentrate on you, never mind, dont yell or shout or panic, just start again a bit further aaway.
Eventually you should have him looking to YOU to bring out the ragger toy, and after that, you can start to ask him to keep his attention on you for slightly longer periods before he gets the toy.
Em