Thank you. On Windows the icons are close together, like I see it in my own demo. On Linux I see the same wide vertical spacing as you. I switched from gtk2 to qt4 - same result. It looks as if Linux reserves the space for the text and ignores that there is no text at all.
But just to draw icons, a TListview maybe is "overkill". Can't you try to paint them yourself on a Paintbox which you insert into a Scrollbox? Use its OnPaint event, call ImageList.Draw(Canvas, x,y, ImgIndex) to draw the image. See attached demo (quick and dirty, could be improved to draw only the visible images, which certainly will be much faster than the overloaded ListView).