TListView の CustomDraw は2つの方法がありまして,1つは DrawItem プロパティを True して OnDrawItem イベントですべてを描く方法.
もう1つは DrawItem プロパティを False のまま OnCustomDrawItem, OnCustomDrawSubItemイベントで描く方法です.

後者では DefaultDraw 引数でキャプションやフォーカスの描画を任せるかどうかが決められます.
更に細かいステージが必要なら OnAdvancedCustomDraw, OnAdvancedCustomDrawSubItem イベントを使えとありますが,
これらはバグっていて cdPrePaint 以外が発生していません.