Сам спросил, сам ответил...
В FMX.ListView в функции определения индекса итема по абсолютной координате клика на ListView почему-то заложено такое поведение ( возвращает индекс последнего элемента если клик пришелся на область, вертикальная координата которой больше чем начало последнего итема). Вот так исправляется:
function TCustomListView.FindItemAbsoluteAt(ViewAt: Integer): Integer;
var
Left, Right, Pivot, Value: Integer;
begin
UpdateItemLookups;
if Items.Count < 1 then
Exit(-1);
if ViewAt < 1 then
Exit(0);
{
if ViewAt >= FHeightSums[FHeightSums.Count - 1] then
Exit(FHeightSums.Count - 1);
}
if ViewAt > FHeightSums[FHeightSums.Count - 1] + GetItemHeight( GetItemCount - 1 ) then
Exit(- 1);