Note:  could also use Orthogonalize

Simultaneous Iteration:
Real

n=3;
m=2;
A= RandomReal[{-1,1},{n,n}];
A= A+Transpose[A];
Q=RandomReal[{-1,1},{m,n}];

NIter=12;
MatrixPlot[
Table[
{Q,R}=QRDecomposition[A.Transpose[Q]];
Flatten[Q],
{NIter}]
]

{q1,q2}=Q;
{qq1,qq2}=Eigenvectors[A,2]
Graphics3D[{
{Green, PointSize[0.02],Point[{0,0,0}]},
{{Red,Arrow[{{0,0,0},q1}],Arrow[{{0,0,0},q2}]},Polygon[{{0,0,0},q1,q2}]},
{{Blue,Arrow[{{0,0,0},qq1}],Arrow[{{0,0,0},qq2}]},Polygon[{{0,0,0},qq1,qq2}]}
},
AspectRatio->Automatic
]

Simultaneous Iteration
Complex

n=3;
m=2;
A= RandomReal[{-1,1},{n,n}];
(*A= A+Transpose[A];*)
Q=RandomReal[{-1,1},{m,n}];

NIter=8;
MatrixPlot[
Table[
{Q,R}=QRDecomposition[A.Transpose[Q]];
Flatten[Q],
{NIter}]
]

{q1,q2}=Q;
{qq1,qq2}=Eigenvectors[A,2]
{qq1,qq2}={Re[qq1],Im[qq1]};
Graphics3D[{
{Green, PointSize[0.02],Point[{0,0,0}]},
{{Red,Arrow[{{0,0,0},q1}],Arrow[{{0,0,0},q2}]},Polygon[{{0,0,0},q1,q2}]},
{{Blue,Arrow[{{0,0,0},qq1}],Arrow[{{0,0,0},qq2}]},Polygon[{{0,0,0},qq1,qq2}]}
},
AspectRatio->Automatic
]

Simultaneous Iteration
Unplottable

n=13;
m=3;
A= RandomReal[{-1,1},{n,n}];
A= A+Transpose[A];
Q=RandomReal[{-1,1},{m,n}];

NIter=123;
MatrixPlot[
Table[
{Q,R}=QRDecomposition[A.Transpose[Q]];
Flatten[Q],
{NIter}]
]