You'll probably want to decompile the map to get the exact speed values and relative sequence positions, but all you should need is a func_door named "push" made to look like a car and a scripted_sequence that makes the garg run up to the car and play the "pushcar" animation.
For anything else similar where an NPC interacts with the world during a scripted sequence you'll have to open a version of Half-Life Model Viewer and see what events are being called; If it's event 1003, then the Options field is the targetname of the entity to trigger on that frame. It's a pretty simple way to do stuff, though it does limit each sequence to being used once per map because there's no way to set the targetname to be anything else short of editing the model to have a duplicate of the animation.