The most obvious solution (for me) is to store the data in a SPDE (or SPDS if thats an option at the libname, and do a SET BY (which will result in a implicit sort on the BY variables). I'm not sure if this can be done with other techniques, but why...?
Perhaps original poster expects to start an independant SAS session to sort the data and provide a signal when that is completed and the data available. However, I see no way for a data step compiler to tolerate the scenario. (or should a set of scl-type functions keep trying to open the data, then extract items of data without the normal use of the names of the variables in the sorted table ;-)
The CALL SORTx() routines provide limited functionality(1 vector at a time), but that reflects the limited definition of the original poster's enquiry.
Of course, the multiple columns of information could be "ordered" if the data set to be sorted could be loaded into a hash table, keyed by the required sort by-variables. Again, that is not the explicitly requested solution.
I don't see how it helps to be able to sort a "sas data set" after the data step has started, that is an unknown requirement before the data step has started, and that must be completed before the data step has finished! But then, I didn't ask the question.
I await with interest for some explanation of the purpose of this requirement.