Die verwendete Nachricht an das Listview ist nur für den ListStyle 'vsIcon' gültig und definiert die Sektionsbreite, also die Breite in der das Icon samt Namen steht.
Für den Style 'vsList' sollte man LV_SETCOLUMNWIDTH verwenden (siehe
MSDN-Hilfe).
Das angehängte Beispiel verdeutlicht die Verwendung. Der Einfachheit halber erfolgt die Berechnung der Breite (mit ListView.Canvas.TextWidth) im OnData-Ereignis. Weiterhin habe ich 10 Pixel dazugerechnet, da das ListView einen Zwischenraum zwischen den Spalten voraussetzt. Wie groß dieser genau ist, weiss ich nicht, aber die 10 Pixel reichen ja.