I stumbled upon the right search terms and found this:
And was able to force the filter box on. Here's what I ended up with:
Names Default To Here( 1 );
dset_names = {"orange", "red", "green", "blue"};
// make a temporary table with empty columns
dt_list = New Table( "tmp_list_table", private );
For( ci = 1, ci <= N Items( dset_names ), ci++,
dt_list << New Column( dset_names[ci] )
);
colnames = {};
win = New Window( "Choose columns to import",
<<Modal,
<<Return Result,
<<On Close( Close( dt_list, nosave ) ),
H List Box(
lb = Filter Col Selector( dt_list, width( 250 ), nlines( 10 ) ),
// force the filter box to be displayed
ib = (lb << Parent) << Xpath( "//IfBox" );
ib << set( 1 );,
Lineup Box( N Col( 1 ), Spacing( 2 ),
Button Box( "Add Selected ->",
dispcols << Append( lb << Get Selected );
colnames = dispcols << Get Items;
),
Button Box( "<- Remove Selected",
dispcols << Remove Selected;
colnames = dispcols << Get Items;
)
),
dispcols = List Box( {}, width( 250 ), nlines( 10 ) )
)
);
// show what was chosen!
Show( colnames );