The constructive proof in this case is probably a lot nicer, but here goes.
For every $n$ the interval $[0, n]$ is compact, therefore it can be covered by a finite set of open intervals of length at most $1/n$. Each such cover can be turned into a partition of $[0,n]$ into Borel sets (of length at most $1/n$). Choose such a partition for every $n \in \mathbb{N}$ and call this partition $P_n$. Then let $g_n$ be the simple measurable function:
$$
g_n = \sum_{A \in P_n} (\inf A) 1_{f^{-1}(A)}
$$
by construction $g_n \leq f$. And since each $A \in P_n$ has a length at most $1/n$ and $P_n$ covers $[0,n]$ for all $x$ either $f(x) - g_n(x) \leq 1/n$ or $f(x) > n$. Therefore for every $x$ : $g_n(x) \to f(x)$ as $n \to \infty$.
Now to generate an increasing sequence, note that taking the absolute value of a simple function results in a simple function, as does adding and subtracting simple functions. Therefore for two simple functions $a,b$
$$
\max(a,b) = b + |a - b|
$$
is a simple function. By extension the maximum of any finite set of simple functions is a simple function, hence:
$$
f_n = \max(g_1, \ldots, g_n)
$$
forms an increasing sequence of simple functions, and $g_n \leq f_n \leq f$ so $f_n \to f$ as $n \to \infty$.