Running programs in processes is operating system specific. The only standard way to do that otherwise is by using system which is probably not suitable. You might use some C++ frameworks (like POCO or Qt or perhaps Boost) which provide a similar interface and is cross-platform.
BTW, without more context and application domain, your question is too general. Robotic neurosurgery, web chat systems, chess playing competitions, high-frequency trading, etc... could all need such an approach, but have different constraints and requires different approaches
Assume your OS is Linux or POSIX (details matter).
What you want to do is similar to a specialized Unix shell. You need to be familiar with system calls related to them. So read something about Linux programming, e.g. ALP or something newer.
On Linux, creating a new process (with fork(2)) and executing a program in it (with execve(2)) is usually quite fast (a few milliseconds), but not that much (starting a dozen of programs & processes every second is reasonable, starting thousands of them might not be). Of course, you need to understand other system calls, e.g. wait(2), pipe(2), dup2(2), poll(2) etc...
You could use several pipe(7)-s and have some event loop around poll(2) to handle them.
You could also organize your system with several longer-running programs using some kind of message passing with your monitor. Look into RPC techniques (perhaps JSONRPC)
You could define some client-server model (maybe using HTTP for that, e.g. with client HTTP libraries like libcurl and server HTTP libraries like libonion). You could even define your own application text-based protocol, but then be sure to document it precisely (look into existing protocols like SMTP, MQTT for inspiration). Study also libraries like 0mq or MPI.