unless you define shorter lengths to reduce the size of variables, the data set will be the same size even if you compress to reduce multiple blanks to one. The compress of a variable just moves blanks from the middle to the end of the variable.
Except, using an option I didn't see recommended by SBB or Patrick, you can get sas to write the rows with compression, like
data reduced(compress=yes) ;
set original ;
array chrs _character_ ;
do over chrs ;
chrs= compbl( chrs ) ;
Of course, that interprets the objective as referring to content of variables.
If you refer to the blanks in variable names (not values) adopt the solution from andreas_lds