А зачем именно TListBox?
Здесь проще взять за основу TScrollBox и поместить на него панели с автоматическим выравниванием.
Такие панели можно добавлять/удалять динамически, сохраняя указатели на них, например, в TStringList.
Сами панели хороши тем, что на них можно поместить что угодно: надписи, кнопки и т.д.