The Inverse Function Theorem requires that you are mapping between spaces of the same dimension. In the present case, you are mapping from a space of dimension $k$ to a space of dimension $l$, where $l \geq k$. Hence we need to modify $g$ somehow to get a map between spaces of, say, dimension $l$. Guillemin and Pollack achieve this by using $U \times \Bbb R^{l-k}$ in place of $U$ and making a new function $G: U \times \Bbb R^{l-k}$ that acts as $g$ on the $U$ part and as the identity on the $\Bbb R^{l-k}$ part.
The way the proof is set up, we have that
$$g = \psi^{-1} \circ f \circ \phi,$$
where $f$ is an immersion at $x \in X$ and $\phi$, $\psi$ are local parametrizations. This means that $df_x$ is injective and $d\phi_0$, $d(\psi^{-1})_0$ are isomorphisms. By the chain rule,
$$dg_0 = d(\psi^{-1})_0 \circ df_x \circ d\phi_0,$$
from which it follows that $dg_0$ is injective.