TListBoxItem(ваш_item).Animate('Opacity', 0, 0.5);
TListBoxItem(ваш_item).AnimateWait('Height', 0, 0.5);
и только после этого удаляйте.
Но здесь может возникнуть ряд проблем.
Во-первых - оптимально делать синхронизацию.
Во-вторых - ввиду "ряда особенностей" FMX все может работать на Windows 8, но не будет работать (или будет, но с ошибками) на Windows 7. А на Windows XP вообще может себя повести в "3-ем варианте"... ) Более стабильно будет работать на Маке и на Android )))
Вот такие чудеса могут быть.
Чтобы всего этого избежать, Вам нужно точно определить ту последовательность, которую Вы хотите воспроизвести и сделать синхронизацию.
Например, как писал выше:
TListBoxItem(ваш_item).Animate('Opacity', 0, 0.5);
TListBoxItem(ваш_item).AnimateWait('Height', 0, 0.5);
// тогда Animate для 'Opacity' и 'Height' выполнится параллельно
// а вот следующая процедура выполнится только после окончания AnimateWait 'Height'
TThread.Synchronize(TThread.CurrentThread, тут_ваша_процера_удаления_item);
Думаю, что корректно описал - как. Но было бы более точно и правильно, если бы на ваш вопрос ответил непосредственно Ярослав Бровин. Он все-таки более компетентен.