Hello -
You might consider reading all variable names into a macro variable and then run X11.
As an example (I'm not filtering out the DATE variable I know - but it might be a start):
%macro lst(dsn);
%global x;
%let x=;
%let dsid=%sysfunc(open(&dsn));
%let cnt=%sysfunc(attrn(&dsid,nvars));
%do i = 1 %to &cnt;
%let x=&x %sysfunc(varname(&dsid,&i));
%end;
%let rc=%sysfunc(close(&dsid));
%mend lst;
%lst(sashelp.workers)
proc x11 data=sashelp.workers noprint;
monthly date=date;
var &x;
tables b1 d11;
output out=out b1=&x d11=&x;
run;