As per order by file1
awk 'NR==FNR{a[++k]=$1;next} {if(FNR==1){for(m=1;m<=k;m++){for(i=1;i<=NF;i++){if(a[m]==$i){printf a[m]" ";b=$i}}}}else{printf "\n";for(j=1;j<=NF;j++){for(s in b) {if(s==j) {printf $j" "}} }}}END {printf "\n"}' file1 file2
As per order by file1
awk 'NR==FNR{a[++k]=$1;next} {if(FNR==1){for(m=1;m<=k;m++){for(i=1;i<=NF;i++){if(a[m]==$i){printf a[m]" ";b=$i}}}}else{printf "\n";for(j=1;j<=NF;j++){for(s in b) {if(s==j) {printf $j" "}} }}}END {printf "\n"}' file1 file2