Um GridView é um ViewGroup que exibe itens na grade de rolagem bidimensional. Os itens na grade vêm do ListAdapter associado a esta exibição.
É isso que você deseja usar (continue usando). Como um GridView obtém seus dados de um ListAdapter, os únicos dados carregados na memória serão os exibidos na tela. Os GridViews, assim como os ListViews, reutilizam e reciclam suas visualizações para melhorar o desempenho.
Enquanto um GridLayout é um layout que coloca seus filhos em uma grade retangular.
Foi introduzido na API nível 14 e foi recentemente suportado na Biblioteca de suporte. Seu principal objetivo é resolver problemas de alinhamento e desempenho em outros layouts. Confira este tutorial se você quiser saber mais sobre o GridLayout.