How to manually control processes launched on start?
~200 processes seems a tad high, but not out of range for *nix systems depending on the hardware and services being invoked. Managing the things that you've installed through the LaunchAgents and LaunchDaemons is the best plan that won't kill your system. Digging into services invoked by launchd is not something I'd recommend unless you understand what the process is there for and what it does - some launchd processes are inter-related and killing one can cause another to fail, and you're heading to a broken system.

For the "freezing" problem, find the service(s) that are suddenly spiking their CPU usage and do some Google searching, note what apps you have open at that time, read the Console logs and see if you can narrow down the cause. Fixing problems like that takes a scalpel, not a shotgun.