Ponieważ zaproponowane przez @crowa rozwiązanie nie dotyczy standardowego TListView (trzeba trochę pozmieniać i z tym @VESPERUS sobie nie radzi) pozwolę sobie zaproponować nieco inne (także polegające na podmianie domyślnej procedury obsługi komunikatów TListView czyli subclassingu ale trochę inaczej inaczej):
type
TListView = class(ComCtrls.TListView)
public
procedure WndProc(var Message: TMessage); override;
end;
//-----
implementation
{$R *.dfm}
procedure TListView.WndProc(var Message: TMessage);
begin
if Message.Msg = WM_SIZE then
ShowScrollBar(Handle, SB_HORZ, False);
inherited;
end;
Jak widać kodu trochę mniej i bez szalonego rozwiązania z ukrywaniem ScrollBara przy KAŻDYM komunikacie.
PS: Rozwiązanie będzie dobre jeżeli jest tylko jeden komponent TListView (lub wszystkie mają zachowywać się tak samo) ponieważ zastosowałem najprostszy sposób podmiany WndProc kontrolki ale w razie czego można w inny sposób podmienić procedurę tylko dla danego ListView i będzie działać.
EDIT: Jak coś to nic się nie zmieniło z wyjątkiem poprawy błędów w treści posta (nie w kodzie) było kilka literówek i 2 razy powtarzających się słów.