Is there any thing that can do these?
Hook to a program, when some program runs, it runs another program. when the program closes, it closes, also closes the program it runs....
Yup, you can 'hook' your program to another program, although it is quite technical. I never done it before. It has something to do with Process ID's (PID's), and you'll need some functions, most likely Win32 API functions. I hope you already have some knowledge about the Win32 API (API stands for Application Programming Interface), else it will be hell. What programming language do you use?
Maybe you can do it using .NET, .NET is easier than Win32 API, but I'm not sure if you can hook your program to another one using .NET.