Вы не можете делать то, что надеетесь сделать. Данные строкового потока - это строка Delphi, которая хранится в виде одного блока памяти. Блоки памяти атомарные, их нельзя разделить. Вы не можете освободить часть блока памяти.
Если вам действительно нужно вернуть память диспетчеру памяти, вам следует создать новую строку с удаленными уже обработанными данными. Затем вы можете заново создать поток строк с этим новым вводом и уничтожить предыдущий поток строк.
Сказав это, трудно понять, что это делает что-то большее, чем увеличение фрагментации памяти. Если размеры используемой памяти достаточно велики, и если поток строк сохраняется достаточно долго, то это может быть разумным подходом. В противном случае это звучит как попытка оптимизации, которая на самом деле снизит производительность.
Возможно, какой-то другой класс, кроме потока строк, может быть более подходящим, но очень трудно советовать, не зная больше деталей.