Lo más probable es que no quieras evitar que MacOS suspenda las aplicaciones cuando el sistema se queda sin RAM cuando sabes que la única alternativa es matar el programa. Es decir, dejar de ejecutar el programa ahora y aquí sin guardar sus datos ni nada por el estilo.
Sin embargo, no es necesario reiniciar los programas que están en pausa como en "cerrar el programa y volver a empezar". En lugar de ello, puede despausar el programa cuando tenga suficiente memoria libre en el sistema. Puede hacer esto desde el terminal ejecutando:
kill -CONT <pid>
donde debe ser reemplazado por el ID del proceso que se desea deshabilitar.
Puede encontrar el ID del proceso usando el Monitor de Actividad o el comando "ps" en la Terminal (en este caso, busque los procesos con estado T ya que son los que están pausados/parados).
Una forma fácil de desbloquear y encontrar el ID de una sola vez es:
kill -CONT `pgrep myprogram`
donde miprograma es el nombre del programa que se quiere deshabilitar.
La segunda parte de tu pregunta, en la que describes el escenario ideal, es muy difícil de conseguir con un programa estándar. En general, los programas pueden solicitar memoria al sistema operativo, pero el sistema operativo no puede solicitarla de vuelta después. Es posible, pero requiere de programas muy especializados, lo que generalmente no es el caso.
Esto significa que una vez que MacOS ha concedido a su programa, por ejemplo, 1 GB de RAM, el sistema operativo no puede simplemente retirarlo cuando otros programas quieran más memoria. Si le quitas la memoria a programas que no están especialmente diseñados para permitirlo, se bloquearán en cuanto intenten utilizar la memoria perdida.