Do you want your FactSet_Universal_screen variable in the output? If not, this may work for you:
data want (keep = FactSet_Universal_screen name date shares);
set r3x_shrout (firstobs=5);
Name=Var2;
array sharevars var3-var122;
do _i_ =1 to dim(sharevars);
/* this is a very data dependent way of getting the date using an offset*/
date = intnx('month','01JUN2014'd,(-1*_i_));
shares=input(ShareVars[_i_],?? best10.);
output;
end;
format date mmyys5.;
run;
proc sort data=want; by name date;run;