[proofplan]
We encode the holomorphic vector bundle $E$ by a holomorphic $\operatorname{GL}_r(\mathbb{C})$-valued Čech cocycle on a holomorphic trivializing cover. A topological trivialization of the same bundle says exactly that this cocycle becomes a coboundary after allowing continuous $\operatorname{GL}_r(\mathbb{C})$-valued cochains. The Theorem-B form of the Oka-Grauert comparison theorem says that, on a Stein manifold, the holomorphic and continuous nonabelian $H^1$ classifications for $\operatorname{GL}_r$ agree. Therefore the cocycle is already a holomorphic coboundary, and the holomorphic cochain giving that coboundary glues the local holomorphic frames into a global holomorphic trivialization.
[/proofplan]
[step:Encode $E$ by a holomorphic matrix cocycle]
If $r=0$, both bundles are the zero vector bundle over $X$, and the unique fiberwise linear map gives the desired holomorphic isomorphism. Assume $r \geq 1$.
Choose a holomorphic trivializing open cover $\mathcal{U} = \{U_\alpha\}_{\alpha \in A}$ of $X$. For each $\alpha \in A$, let
\begin{align*}
\varphi_\alpha: \pi^{-1}(U_\alpha) &\to U_\alpha \times \mathbb{C}^r
\end{align*}
be a holomorphic vector-bundle isomorphism over $U_\alpha$. For $\alpha,\beta \in A$, define $U_{\alpha\beta} := U_\alpha \cap U_\beta$. The transition map
\begin{align*}
g_{\alpha\beta}: U_{\alpha\beta} &\to \operatorname{GL}_r(\mathbb{C})
\end{align*}
is defined by the identity
\begin{align*}
\varphi_\alpha \circ \varphi_\beta^{-1}(x,v) = (x, g_{\alpha\beta}(x)v)
\end{align*}
for every $x \in U_{\alpha\beta}$ and every $v \in \mathbb{C}^r$. Since $\varphi_\alpha$ and $\varphi_\beta$ are holomorphic and fiberwise complex-linear, each $g_{\alpha\beta}$ is holomorphic.
For $\alpha,\beta,\gamma \in A$, define $U_{\alpha\beta\gamma} := U_\alpha \cap U_\beta \cap U_\gamma$. On $U_{\alpha\beta\gamma}$, composition of the coordinate changes gives
\begin{align*}
g_{\alpha\gamma}(x) = g_{\alpha\beta}(x)g_{\beta\gamma}(x)
\end{align*}
for every $x \in U_{\alpha\beta\gamma}$, and $g_{\alpha\alpha}(x)=I_r$, where $I_r$ is the identity matrix in $\operatorname{GL}_r(\mathbb{C})$. Thus $g=\{g_{\alpha\beta}\}$ is a holomorphic $1$-cocycle with values in the sheaf $\operatorname{GL}_r(\mathcal{O}_X)$.
[guided]
If $r=0$, the fiber over every point is the zero vector space. Hence $E$ and $X \times \mathbb{C}^0$ are both the zero vector bundle over $X$, and the unique fiberwise linear map is holomorphic. We therefore assume $r \geq 1$, so that $\operatorname{GL}_r(\mathbb{C})$ is the usual complex Lie group of invertible $r \times r$ matrices.
Because $E$ is a holomorphic vector bundle, it is locally holomorphically isomorphic to the product bundle. Choose a holomorphic trivializing open cover $\mathcal{U} = \{U_\alpha\}_{\alpha \in A}$ of $X$. For each index $\alpha \in A$, choose a holomorphic vector-bundle isomorphism over $U_\alpha$,
\begin{align*}
\varphi_\alpha: \pi^{-1}(U_\alpha) &\to U_\alpha \times \mathbb{C}^r.
\end{align*}
This means that $\varphi_\alpha$ is holomorphic, fiberwise complex-linear, and sends the fiber $E_x$ to $\{x\}\times \mathbb{C}^r$ for every $x \in U_\alpha$.
For two indices $\alpha,\beta \in A$, set $U_{\alpha\beta}:=U_\alpha \cap U_\beta$. On $U_{\alpha\beta}$, both $\varphi_\alpha$ and $\varphi_\beta$ describe the same bundle in product coordinates. Therefore their coordinate-change map has the form
\begin{align*}
\varphi_\alpha \circ \varphi_\beta^{-1}(x,v) = (x, g_{\alpha\beta}(x)v),
\end{align*}
where
\begin{align*}
g_{\alpha\beta}: U_{\alpha\beta} &\to \operatorname{GL}_r(\mathbb{C})
\end{align*}
is the unique matrix-valued map determined by this identity. The map lands in $\operatorname{GL}_r(\mathbb{C})$ because the coordinate change is an isomorphism on every fiber. It is holomorphic because the coordinate change $\varphi_\alpha \circ \varphi_\beta^{-1}$ is holomorphic and fiberwise linear.
Now take three indices $\alpha,\beta,\gamma \in A$ and write $U_{\alpha\beta\gamma}:=U_\alpha \cap U_\beta \cap U_\gamma$. For $x \in U_{\alpha\beta\gamma}$ and $v \in \mathbb{C}^r$, we compute the same coordinate change from the $\gamma$-chart to the $\alpha$-chart in two ways:
\begin{align*}
\varphi_\alpha \circ \varphi_\gamma^{-1}(x,v)
&= (x, g_{\alpha\gamma}(x)v), \\
\varphi_\alpha \circ \varphi_\beta^{-1}\bigl(\varphi_\beta \circ \varphi_\gamma^{-1}(x,v)\bigr)
&= \varphi_\alpha \circ \varphi_\beta^{-1}(x,g_{\beta\gamma}(x)v) \\
&= (x,g_{\alpha\beta}(x)g_{\beta\gamma}(x)v).
\end{align*}
Since this holds for every $v \in \mathbb{C}^r$, we obtain
\begin{align*}
g_{\alpha\gamma}(x)=g_{\alpha\beta}(x)g_{\beta\gamma}(x).
\end{align*}
Also $g_{\alpha\alpha}(x)=I_r$, where $I_r$ denotes the identity matrix. These identities are precisely the Čech cocycle identities, so $g=\{g_{\alpha\beta}\}$ represents a class in the nonabelian pointed set $H^1(X,\operatorname{GL}_r(\mathcal{O}_X))$.
[/guided]
[/step]
[step:Translate the topological trivialization into a continuous coboundary]
Let
\begin{align*}
\Phi: E &\to X \times \mathbb{C}^r
\end{align*}
be a topological vector-bundle isomorphism over $X$. For each $\alpha \in A$, define the continuous map
\begin{align*}
h_\alpha: U_\alpha &\to \operatorname{GL}_r(\mathbb{C})
\end{align*}
by the identity
\begin{align*}
\Phi \circ \varphi_\alpha^{-1}(x,v) = (x,h_\alpha(x)v)
\end{align*}
for every $x \in U_\alpha$ and every $v \in \mathbb{C}^r$.
For $x \in U_{\alpha\beta}$ and $v \in \mathbb{C}^r$, we have
\begin{align*}
(x,h_\beta(x)v)
&= \Phi \circ \varphi_\beta^{-1}(x,v) \\
&= \Phi \circ \varphi_\alpha^{-1}(x,g_{\alpha\beta}(x)v) \\
&= (x,h_\alpha(x)g_{\alpha\beta}(x)v).
\end{align*}
Hence
\begin{align*}
h_\beta(x)=h_\alpha(x)g_{\alpha\beta}(x),
\end{align*}
and therefore
\begin{align*}
g_{\alpha\beta}(x)=h_\alpha(x)^{-1}h_\beta(x).
\end{align*}
Thus the image of the holomorphic cocycle $g$ in $H^1(X,\operatorname{GL}_r(\mathcal{C}_X^0))$ is the neutral class, where $\operatorname{GL}_r(\mathcal{C}_X^0)$ denotes the sheaf of continuous $\operatorname{GL}_r(\mathbb{C})$-valued maps.
[guided]
The hypothesis says that the underlying topological vector bundle of $E$ is the product bundle. Concretely, this gives a continuous vector-bundle isomorphism over $X$,
\begin{align*}
\Phi: E &\to X \times \mathbb{C}^r.
\end{align*}
The phrase “over $X$” means that the first coordinate of $\Phi(e)$ is $\pi(e)$ for every $e \in E$, and the restriction of $\Phi$ to each fiber $E_x$ is a complex-linear isomorphism from $E_x$ to $\mathbb{C}^r$.
We now express $\Phi$ in the holomorphic local coordinates chosen above. For each $\alpha \in A$, define
\begin{align*}
h_\alpha: U_\alpha &\to \operatorname{GL}_r(\mathbb{C})
\end{align*}
by requiring
\begin{align*}
\Phi \circ \varphi_\alpha^{-1}(x,v) = (x,h_\alpha(x)v)
\end{align*}
for every $x \in U_\alpha$ and every $v \in \mathbb{C}^r$. The map $h_\alpha$ is continuous because $\Phi$ and $\varphi_\alpha^{-1}$ are continuous. It lands in $\operatorname{GL}_r(\mathbb{C})$ because $\Phi$ is a fiberwise complex-linear isomorphism.
Now compare the two descriptions on an overlap $U_{\alpha\beta}$. If we start with $\beta$-coordinates $(x,v)$, then changing first to $\alpha$-coordinates gives $(x,g_{\alpha\beta}(x)v)$. Applying $\Phi$ after this coordinate change gives
\begin{align*}
\Phi \circ \varphi_\alpha^{-1}(x,g_{\alpha\beta}(x)v)
= (x,h_\alpha(x)g_{\alpha\beta}(x)v).
\end{align*}
Applying $\Phi$ directly in the $\beta$-coordinates gives
\begin{align*}
\Phi \circ \varphi_\beta^{-1}(x,v)
= (x,h_\beta(x)v).
\end{align*}
These are the same vector in $X\times \mathbb{C}^r$, so
\begin{align*}
h_\beta(x)v=h_\alpha(x)g_{\alpha\beta}(x)v
\end{align*}
for every $v \in \mathbb{C}^r$. Hence
\begin{align*}
h_\beta(x)=h_\alpha(x)g_{\alpha\beta}(x),
\end{align*}
and, since $h_\alpha(x)$ is invertible,
\begin{align*}
g_{\alpha\beta}(x)=h_\alpha(x)^{-1}h_\beta(x).
\end{align*}
This says exactly that the cocycle $g$ is a continuous coboundary: if the continuous coboundary of a $0$-cochain $h=\{h_\alpha\}$ is defined by
\begin{align*}
(\delta h)_{\alpha\beta}:=h_\alpha^{-1}h_\beta,
\end{align*}
then $g=\delta h$. Thus the holomorphic cocycle becomes neutral after passing from holomorphic maps to continuous maps.
[/guided]
[/step]
[step:Apply the Theorem-B Oka-Grauert comparison theorem to lift the continuous coboundary holomorphically]
Let
\begin{align*}
\iota: \operatorname{GL}_r(\mathcal{O}_X) &\to \operatorname{GL}_r(\mathcal{C}_X^0)
\end{align*}
be the inclusion of sheaves sending a holomorphic $\operatorname{GL}_r(\mathbb{C})$-valued map to the same map regarded as continuous. We use the Theorem-B Oka-Grauert Comparison Theorem for $\operatorname{GL}_r$-Cocycles: if $X$ is Stein, then
\begin{align*}
\iota_*: H^1(X,\operatorname{GL}_r(\mathcal{O}_X)) &\to H^1(X,\operatorname{GL}_r(\mathcal{C}_X^0))
\end{align*}
is a bijection of pointed nonabelian cohomology sets.
Its hypotheses apply here. The space $X$ is Stein by assumption. The infinitesimal sheaf entering the Cartan splitting argument is
\begin{align*}
\mathfrak{gl}_r(\mathcal{O}_X) &\cong \mathcal{O}_X^{\oplus r^2},
\end{align*}
which is coherent as a finite free $\mathcal{O}_X$-module. By Cartan's Theorem B, its higher cohomology on $X$ vanishes, and by the Dolbeault Isomorphism, this is equivalently the global solvability of the corresponding matrix-valued $\bar{\partial}$-problems used in the comparison theorem.
Since the image $\iota_*([g])$ is the neutral continuous class by the previous step and $\iota_*$ is injective, the holomorphic class $[g]$ is itself neutral. Therefore, after replacing $\mathcal{U}$ by a refinement if necessary, there exist holomorphic maps
\begin{align*}
a_\alpha: U_\alpha &\to \operatorname{GL}_r(\mathbb{C})
\end{align*}
such that
\begin{align*}
g_{\alpha\beta}(x)=a_\alpha(x)^{-1}a_\beta(x)
\end{align*}
for every $x \in U_{\alpha\beta}$.
[guided]
We now use the global analytic input. Define $\operatorname{GL}_r(\mathcal{O}_X)$ to be the sheaf whose sections over an open set $V \subseteq X$ are holomorphic maps $V \to \operatorname{GL}_r(\mathbb{C})$. Define $\operatorname{GL}_r(\mathcal{C}_X^0)$ to be the sheaf whose sections over $V$ are continuous maps $V \to \operatorname{GL}_r(\mathbb{C})$. There is an inclusion of sheaves
\begin{align*}
\iota: \operatorname{GL}_r(\mathcal{O}_X) &\to \operatorname{GL}_r(\mathcal{C}_X^0),
\end{align*}
because every holomorphic map is continuous.
The Theorem-B Oka-Grauert Comparison Theorem for $\operatorname{GL}_r$-Cocycles states that, when $X$ is Stein, the induced map
\begin{align*}
\iota_*: H^1(X,\operatorname{GL}_r(\mathcal{O}_X)) &\to H^1(X,\operatorname{GL}_r(\mathcal{C}_X^0))
\end{align*}
is a bijection of pointed nonabelian cohomology sets. The point of this theorem is that a continuous solution to a $\operatorname{GL}_r$-valued gluing problem can be replaced by a holomorphic solution. This is exactly the replacement needed here.
We verify the hypotheses. First, $X$ is Stein by the theorem statement. Second, $r \geq 1$, so $\operatorname{GL}_r(\mathbb{C})$ is a complex Lie group. Third, the infinitesimal linearized sheaf that appears in the Cartan splitting and $\bar{\partial}$ correction argument is the sheaf of holomorphic matrix-valued functions,
\begin{align*}
\mathfrak{gl}_r(\mathcal{O}_X) &\cong \mathcal{O}_X^{\oplus r^2}.
\end{align*}
This sheaf is coherent because it is a finite free $\mathcal{O}_X$-module. Hence Cartan's Theorem B gives the vanishing of its higher sheaf cohomology on the Stein manifold $X$. Through the Dolbeault Isomorphism, this vanishing is the same analytic input as solvability of the corresponding matrix-valued $\bar{\partial}$-equations. The comparison theorem packages the resulting Cartan splitting argument into the statement that $\iota_*$ is bijective.
From the previous step, the continuous class of $g$ is neutral, because
\begin{align*}
g_{\alpha\beta}=h_\alpha^{-1}h_\beta
\end{align*}
for a continuous $0$-cochain $h=\{h_\alpha\}$. In cohomological terms,
\begin{align*}
\iota_*([g])=\text{the neutral class in }H^1(X,\operatorname{GL}_r(\mathcal{C}_X^0)).
\end{align*}
Since $\iota_*$ is injective, $[g]$ must already be the neutral class in $H^1(X,\operatorname{GL}_r(\mathcal{O}_X))$. By the definition of the neutral class in nonabelian Čech cohomology, after passing to a refinement of the cover if needed, there are holomorphic maps
\begin{align*}
a_\alpha: U_\alpha &\to \operatorname{GL}_r(\mathbb{C})
\end{align*}
such that
\begin{align*}
g_{\alpha\beta}(x)=a_\alpha(x)^{-1}a_\beta(x)
\end{align*}
for every $x \in U_{\alpha\beta}$. Replacing the cover by that refinement and keeping the same notation, we now have a holomorphic coboundary representation of the original transition functions.
[/guided]
[/step]
[step:Glue the corrected local formulas into a global holomorphic trivialization]
For each $\alpha \in A$, let
\begin{align*}
\operatorname{pr}_2: U_\alpha \times \mathbb{C}^r &\to \mathbb{C}^r
\end{align*}
denote projection onto the second factor. Define
\begin{align*}
F_\alpha: \pi^{-1}(U_\alpha) &\to U_\alpha \times \mathbb{C}^r
\end{align*}
by
\begin{align*}
F_\alpha(e)=\bigl(\pi(e),a_\alpha(\pi(e))\operatorname{pr}_2(\varphi_\alpha(e))\bigr).
\end{align*}
Each $F_\alpha$ is holomorphic and fiberwise complex-linear.
If $e \in \pi^{-1}(U_{\alpha\beta})$, write $\varphi_\beta(e)=(x,v)$ with $x \in U_{\alpha\beta}$ and $v \in \mathbb{C}^r$. Then $\varphi_\alpha(e)=(x,g_{\alpha\beta}(x)v)$, and hence
\begin{align*}
F_\alpha(e)
&= (x,a_\alpha(x)g_{\alpha\beta}(x)v) \\
&= (x,a_\alpha(x)a_\alpha(x)^{-1}a_\beta(x)v) \\
&= (x,a_\beta(x)v) \\
&= F_\beta(e).
\end{align*}
Thus the maps $F_\alpha$ glue to a holomorphic bundle map
\begin{align*}
F: E &\to X \times \mathbb{C}^r.
\end{align*}
For each $\alpha \in A$, define
\begin{align*}
G_\alpha: U_\alpha \times \mathbb{C}^r &\to \pi^{-1}(U_\alpha)
\end{align*}
by
\begin{align*}
G_\alpha(x,w)=\varphi_\alpha^{-1}(x,a_\alpha(x)^{-1}w).
\end{align*}
The same relation $g_{\alpha\beta}=a_\alpha^{-1}a_\beta$ shows that the $G_\alpha$ agree on overlaps, so they glue to a holomorphic bundle map
\begin{align*}
G: X \times \mathbb{C}^r &\to E.
\end{align*}
The local formulas give $F \circ G=\operatorname{id}_{X\times \mathbb{C}^r}$ and $G \circ F=\operatorname{id}_E$. Therefore $F$ is a holomorphic vector-bundle isomorphism from $E$ to $X \times \mathbb{C}^r$.
[guided]
The holomorphic maps $a_\alpha$ are the corrected local trivializing matrices. We now use them to build a global trivialization. For each $\alpha \in A$, let
\begin{align*}
\operatorname{pr}_2: U_\alpha \times \mathbb{C}^r &\to \mathbb{C}^r
\end{align*}
be the projection onto the second factor. Define
\begin{align*}
F_\alpha: \pi^{-1}(U_\alpha) &\to U_\alpha \times \mathbb{C}^r
\end{align*}
by
\begin{align*}
F_\alpha(e)=\bigl(\pi(e),a_\alpha(\pi(e))\operatorname{pr}_2(\varphi_\alpha(e))\bigr).
\end{align*}
This is holomorphic because $\varphi_\alpha$, $a_\alpha$, and multiplication of a matrix by a vector are holomorphic. It is fiberwise complex-linear because $\varphi_\alpha$ is fiberwise complex-linear and $a_\alpha(x)$ is a complex-linear matrix for each $x \in U_\alpha$.
We must check that these local maps agree on overlaps. Take $e \in \pi^{-1}(U_{\alpha\beta})$. Write
\begin{align*}
\varphi_\beta(e)=(x,v)
\end{align*}
with $x \in U_{\alpha\beta}$ and $v \in \mathbb{C}^r$. By the definition of the transition function,
\begin{align*}
\varphi_\alpha(e)=(x,g_{\alpha\beta}(x)v).
\end{align*}
Therefore
\begin{align*}
F_\alpha(e)
&= (x,a_\alpha(x)g_{\alpha\beta}(x)v).
\end{align*}
Using the holomorphic coboundary identity $g_{\alpha\beta}(x)=a_\alpha(x)^{-1}a_\beta(x)$, we get
\begin{align*}
F_\alpha(e)
&= (x,a_\alpha(x)a_\alpha(x)^{-1}a_\beta(x)v) \\
&= (x,a_\beta(x)v) \\
&= F_\beta(e).
\end{align*}
Thus the $F_\alpha$ are compatible on overlaps and glue to a well-defined holomorphic bundle map
\begin{align*}
F: E &\to X \times \mathbb{C}^r.
\end{align*}
It remains to verify that $F$ is an isomorphism, not merely a homomorphism. We write its inverse locally. For each $\alpha \in A$, define
\begin{align*}
G_\alpha: U_\alpha \times \mathbb{C}^r &\to \pi^{-1}(U_\alpha)
\end{align*}
by
\begin{align*}
G_\alpha(x,w)=\varphi_\alpha^{-1}(x,a_\alpha(x)^{-1}w).
\end{align*}
This map is holomorphic because $\varphi_\alpha^{-1}$ is holomorphic and $a_\alpha^{-1}$ is holomorphic as a $\operatorname{GL}_r(\mathbb{C})$-valued map.
Now check compatibility of the $G_\alpha$. On an overlap $U_{\alpha\beta}$, the identity $g_{\alpha\beta}=a_\alpha^{-1}a_\beta$ implies
\begin{align*}
g_{\alpha\beta}(x)^{-1}a_\alpha(x)^{-1}w=a_\beta(x)^{-1}w.
\end{align*}
Since $\varphi_\alpha^{-1}(x,u)=\varphi_\beta^{-1}(x,g_{\alpha\beta}(x)^{-1}u)$ for $u \in \mathbb{C}^r$, we obtain
\begin{align*}
\varphi_\alpha^{-1}(x,a_\alpha(x)^{-1}w)
&= \varphi_\beta^{-1}(x,g_{\alpha\beta}(x)^{-1}a_\alpha(x)^{-1}w) \\
&= \varphi_\beta^{-1}(x,a_\beta(x)^{-1}w).
\end{align*}
Thus the maps $G_\alpha$ glue to a holomorphic bundle map
\begin{align*}
G: X \times \mathbb{C}^r &\to E.
\end{align*}
The local formulas show that $F_\alpha \circ G_\alpha$ is the identity on $U_\alpha \times \mathbb{C}^r$ and that $G_\alpha \circ F_\alpha$ is the identity on $\pi^{-1}(U_\alpha)$. Therefore the glued maps satisfy
\begin{align*}
F \circ G &= \operatorname{id}_{X\times \mathbb{C}^r}, \\
G \circ F &= \operatorname{id}_E.
\end{align*}
Hence $F$ is a holomorphic vector-bundle isomorphism from $E$ to the product bundle $X \times \mathbb{C}^r$, which proves the theorem.
[/guided]
[/step]