Seus programas estão sempre rodando na memória virtual o tempo todo. (A terminologia do Windows na caixa de diálogo em que você define o tamanho do arquivo de paginação é grosseiramente enganosa.)
O que você está pedindo é a capacidade de forçar um programa a ser paginado. Não há como fazer isso diretamente.
so it eventually becomes really slow by trying to keep pieces of every program on memory and swapping other pieces to virtual memory.
Isso não acontece. As páginas de memória que não estão sendo acessadas estão sempre disponíveis para serem liberadas para outros usos (e gravadas no disco conforme necessário); o sistema operacional não "tenta manter partes de cada programa" na memória, independentemente de estarem sendo acessadas. Se eles não estão sendo acessados, o que normalmente é o caso de páginas privadas de um programa ocioso, eles só permanecerão na memória até que haja pressão causada pelas necessidades de outros programas. (Até então, não há nenhum ponto em pagá-los, certo?)
Por meio do Windows XP, minimizar o Windows de um aplicativo forçaria uma limpeza do conjunto de trabalho, mas acho que o XP foi o último em que isso foi verdade.
Se você realmente quiser fazer isso, no entanto, você pode usar a ferramenta VMmap
da SysInternals. Quando ele for iniciado, ele solicitará que você selecione um processo. Faça isso e selecione Visualizar | Conjunto De Trabalho Vazio.
No entanto, observe que isso libera apenas páginas para a lista de páginas modificadas ou em espera. (E isso apenas para páginas que não estão nos conjuntos de trabalho de quaisquer outros processos.) As páginas removidas para a lista modificada serão gravadas no arquivo de paginação e depois movidas para a lista de espera. Páginas na lista de espera são consideradas "disponíveis", mas até que sejam reaproveitadas para algum outro uso, elas ainda conterão o conteúdo do processo original.
O resultado líquido é exatamente o mesmo que o Windows fará se houver pressão pela memória disponível - você está apenas fazendo isso antes, antes que essas demandas realmente existam.
Detalhes completos são, claro, no capítulo Gerenciamento de Memória do Windows Internals por Solomon, Russinovich e Ionescu.