Dados seus detalhes, presumo que você tenha verificado que seus arquivos realmente têm 99% de dados em comum, com 1% de diferença contígua (ou quase contígua) neles.
Primeiro, você deve usar tar para fazer um arquivo com seus arquivos dentro dele. Para testes, eu criaria um .tar com 10 arquivos, então teria um tamanho de 300MB.
Em seguida, usando xz, você precisa configurá-lo para que o dicionário seja maior que o tamanho de um arquivo. Desde que você não diga se você tem restrições de memória, eu iria com xz -9. Não faz sentido não usar toda a memória disponível.
Eu também usaria o --extreme preset, para testar se faz diferença.
Tamanho do dicionário
Em uma documentação que tenho disponível - site - é dito que o dicionário tamanho é aproximadamente igual ao uso de memória descompressora. E o parâmetro -1 significa um ditado de 1 MiB, -6 significa 10 MiB (ou 8 MiB em outra parte do mesmo manual). É por isso que você não está obtendo nenhuma vantagem colocando esses arquivos juntos. Usar o -9 faria o decompessor (e, portanto, o dicionário) ter 64 MiB, e acho que é isso que você queria.
Editar
Outra possibilidade seria usar outro compressor. Eu usaria o 7zip, mas colocaria esses arquivos primeiro e depois 7zip.
Dependendo do conteúdo dos seus arquivos, talvez você possa usar 7zip com o método PPM-D (em vez de LZMA ou LZMA2, que é o padrão e o mesmo usado por xz)
Não é bom: Zip (dict = 32kB), Bzip (dict = 900 kB).