Let $(H,\langle\cdot,\cdot\rangle)$ be a Hilbert space. For $k\geq 1$, denote $$V_{k}(H)=\{(x_{1},\ldots ,x_{k})\in H^{k}: \langle x_{i},x_{j}\rangle=\delta_{ij}\}$$ the set of all orthonormal $k$-frames in $H$. The unitary group is $$U(H)=\{T\in B(H) :TT^*=T^*T=I\}$$ where $B(H)$ is the set of continuous linear operators on $H$.
The group $U(H)$ naturally acts on $V_{k}(H)$ with $T((x_{1},\ldots, x_{k})):=(T(x_{1}),\ldots,T(x_{k}))$ for $T\in U(H)$ and $(x_{1},\ldots, x_{k})\in V_{k}(H)$.
How to show that this action is transitive? Clearly $U(H)$ acts transitively on the set $\{x\in H :\Vert x\Vert =1\}$ so this prove the case $k=1$.
Suppose $(x_1,\cdots,x_k)$ and $(y_1,\cdots,y_k)$ are two frames. Let $V=\mathrm{span}\{x_1,\cdots,x_k,y_1,\cdots,y_k\}$, which is necessarily finite-dimensional. If we can find an operator $T\in U(V)$ that sends the one frame to the other within $V$, we can extend it to an orthonormal operator $S\in B(H)$ by defining $\left.S\right|_V=T$ and $\left.S\right|_{V^\perp}=\mathrm{Id}_{V^\perp}$, and then $S$ sends the one frame to the other within $H$.
To show $U(n)$ acts transitively on $k$-frames of $\mathbb{C}^n$ it suffices to show all $k$-frames are in the orbit of the "standard" $k$-frame $(e_1,\cdots,e_k)$. Given any $k$-frame $(x_1,\cdots,x_k)$, we can extend it to an ordered orthonormal basis $\{x_1,\cdots,x_n\}$ of $\mathbb{C}^n$, then use these as the columns of $T$. Then $T\in U(n)$ sends the standard $k$-frame to the arbitrary $k$-frame $(x_1,\cdots,x_k)$.