Hola,
No estoy seguro, pero, creo que tienes que utilizar el evento "AddFolder" del componente "ShellListView", o, cuando menos, algo más o menos como lo que sigue parece funcionar bien:
Código Delphi
[-]
const
filtroArchivos = '.txt .dat';
procedure TForm1.ShellListView1AddFolder(Sender: TObject;
AFolder: TShellFolder; var CanAdd: Boolean);
begin
if not AFolder.IsFolder then CanAdd := (Pos(ExtractFileExt(AFolder.PathName), filtroArchivos) <> 0);
end;