TDMS не очень подходит, хотя это в принципе и есть своеобразная СУБД, где хранятся бинарные данные.
Но ввиду периодического удаления ненужных данных потребуется периодическая дефрагментация и переиндексация.
Ели писать в отдельные файлы, то получаем как и сейчас...
А не пробовал сразу выделить буфер (массив) и работать с ним без переиндексации, что бы память не дергать больше?
Передавать данные по ссылке на этот буфер (как рекомендовали выше), что бы избежать копирования.