You may have to look at a Macro program solution, then. The thing is that it looks like ODS OUTPUT does not collect the PCTLPTS info. And since you don't want PROC UNIVARIATE to put ALL your variables into one obs, you're going to have to make multiple passes through the data anyway.
I can get this output:
after running macro program
You can automatically generate the macro calls (%dovars invocation) for each variable, if you know how to read the Dictionary tables, but for this example, I just hardcoded the values age, height and weight from SASHELP.CLASS.
Hopefully, this will give you a place to start. The output above is from the final PROC PRINT on WORK.ALLQUANT.