Na verdade, esse não é um problema específico do Eclipse; é um problema geral do Java no Windows. É por causa de como a JVM aloca memória no Windows; ele insiste em alocar um bloco contíguo de memória, o que muitas vezes o Windows não pode fornecer, mesmo que haja blocos separados o suficiente para atender à solicitação de alocação. Existem utilitários que vão tentar ajudar o Windows a "desfragmentar" sua memória, o que, em tese, ajudaria nessa situação; mas eu realmente não os experimentei com seriedade, então não posso falar sobre sua eficácia. Uma coisa que às vezes ouvi que pode ajudar é reiniciar o Windows e, antes de iniciar qualquer outro aplicativo, iniciar o aplicativo Java que precisa de um grande pedaço de memória. Se você tiver sorte, o Windows ainda não terá fragmentado seu espaço de memória e o Java obterá o bloco contíguo que é solicitado.
Em algum lugar nas interwebs há mais explicações e análises técnicas sobre o assunto, mas não tenho nenhuma referência disponível.
Eu achei isso, porém, que parece útil: https://stackoverflow.com/a/497757/639520