Thanks Justin. Actually I just found a workaround that seems to work pretty well. I embed the listbox into a scroll box, set the width of the list box nice and wide, and the width of the scrollbox as narrow as I need.
The reason I want to do it this way is because in my actual script, I have two associated columns, basically two different names for the same parameters. Some people care about 1 name (up to 32 characters); other people care about the other name, which can be many characters. So I concatenate the first name || "_::" || second name. #of underscores is 32 minus the length of the first name, to try to align them in the box.
Here's the updated test script with the scroll box:
names default to here(1);
myList ={};
for(i = 1, i <= 10, i++,
myList[i] = char(i) || "abcdefghijklmnopqrstuvwxyz_abcdefghijklmnopqrstuvwxyz_abcdefghijklmnopqrstuvwxyz";
);
myWin = new window("test",
sb = Scroll Box(
Size( 200, 400 ),
lb = listbox(myList,nlines(7), width(600))
);
);
sb << Set Scrollers( 1, 1 ); // enable both scroll bars