Some programs run as services, some run as regular programs. Changes to services, to the best of my knowledge, is applied system wide. Regular programs can be manipulated in the way you want.
However, it just strikes me that a far simpler solution is to figure out if there are any core programs you always want to have running, and leave those alone. Then only start the others on an as-needed basis, and shut them down when done. You might also want to go through all of the programs, and decide whether or not they are used enough to justify being kept around.
Later, if you want to learn a little shell scripting, you could create a simple batch file menu program that would pop up at login, and ask you which set of programs you wanted to start. You could list them individually, or group them into profiles or categories.
My computer is very slow as I have lots of programs run at background, and I may not need some of them every time. I am thinking about to create several user accounts and active different program startup to different accounts. Is this possible? Does this work?