A principal diferença é o htop conta a memória cache e os buffers na memória livre, enquanto o comando free não. Isso daria usando o comando livre
4980 - 3025 - 903 = 1052 memória usada
que dá resultados muito próximos com 1076 do htop. A diferença pode ser explicada aqui . (Isso explica no openSUSE eu acho que no Ubuntu será quase o mesmo), ou se você não estiver executando os dois comandos ao mesmo tempo.
Aqui é a explicação de por que os buffers e a memória cache às vezes são considerados gratuitos.