Está tudo lá. A primeira linha de free
mostra que os buffers ocupam 124, o cache 543; 543 + 124 = 667, 1000 - 667 = 333. E é isso que a segunda linha de free
(na verdade, 332) mostra.
Essa é a diferença entre a "memória livre" e a memória "disponível". Buffers / cache podem ser liberados em um momento, então eles não contam como memória "não disponível" no Monitor do Sistema, mas eles também não são, estritamente falando, memória livre.
Do ponto de vista do usuário, a memória "disponível" é mais importante. O Linux irá maximizar os buffers / cache para acelerar o sistema, mas isso não significa que sua memória está cheia e que o sistema fica lento devido à falta de memória disponível.