You could use something like this, assuming the hash table name is "somehash", your dialog name is "somedialog" and the listbox ID is 5:
hsave -n somehash somehash.temp
filter -fo somehash.temp somedialog 5
I posted this not because it doesn't use variables (which is a very weird requirement, why wouldn't you want to use variables?), but because it's faster for large tables. However this method is limited; you can only dump the items' data in the listbox, you can't include the item names or do something with the data before you output it (unless you use /filter's -k switch in the second case).