A clarification. The name of the data set is DICTIONARY.MEMBERS if you're using SQL and SASHELP.VTABLE or VSTABLE if you're using a DATA step program. Building CALL EXECUTE statements will happen in 1 DATA step program, that's true. However, the statements (PROC PRINTS) that are built do not represent 1 program, but a series of 20 PROC PRINT programs or steps that are put into a program queue. The 1 program that builds the CALL EXECUTE statements will run, then the 20 PROC PRINTS will run, AFTER the entire DATA step has finished building all the CALL EXECUTE statments.
How would your printer cope with 20 datasets to print "at once"?
It would print one at a time
unless, perhaps, you have 20 printers, but I don't expect so.
Much more likely ~ I expect you want 20 print files, or perhaps 20 worksheets in an excel workbook?
Even thought there is a PROC CONTENTS feature that conveniently reports on the structure of _all_ data sets in a SAS library, there is no corresponding feature of PROC PRINT to print the contents of all data sets in a library.
I like the possibility of drag-n-drop support in SAS Enterprise Guide (SEG) providing a quick delivery of multiple data sets into excel or some other output destination, but since SEG is not my field of expertise I can only recommend you pose your question on that forum at http://support.sas.com/forums/forum.jspa?forumID=10 .