Ты удаляешь строку
procedure THIMST_DragRowManager.RowData;
begin
dragData := Value;
sControl.LVDelete(oldIndex);
end;
Где вот такое у тебя перед удалением строки?
if Assigned(PData(sControl.LVItemData[oldindex])) then
begin
FreeData(PData(sControl.LVItemData[oldindex]));
Dispose(PData(sControl.LVItemData[oldindex]));
end;