Well, I would advise that that is not the best layout, going the other way would be more beneficial, i.e. having 81 records and 2 columns. Far easier to work with. Anyways something like - and note that this is not tested as you have not provided test data in the form of a datastep.
data want (drop=i);
set have end=last;
array final{81} 8;
retain final:;
array theta{9};
if _n_=1 then mult=0;
do i=1 to 9;
final{(mult*9)+i}=theta{i};
end;
if last then output;
run;