This article discusses the actual phenomenon - the preparation, and a bit about the steering - that yes it was done with only a fairly normal looking suit without sails, although an oxygen mask was uses at first.
Here's a plot of a ballpark estimation of the trajectory, the math and a short Python script is included below. I adjusted the numbers a bit, estimating the time as 2min 8sec, neglecting the landing wasn't at sea level.

In a short pre-dive interview snipped shown in the video now linked in the article (thanks @K7PEH for the updated info) the diver says that at 25,000 feet he will be falling at about 150 mph (about 240kph, 67 m/s) and near the end where the air is thicker, 120 mph (about 190kph, 54 m/s). The scale height (change in altitude for a $\frac{1}{e}$ change of pressure) of the lower atmosphere is roughly 7600 m (it varies with local temperature) and the density roughly tracks that as well. 25,000 feet is also about 7600 m, that explains the oxygen mask in the beginning.
Wikipedia says that a skydiver in this orientation will reach a terminal velocity of about 200 kph (about 56 m/s).
If the person's mass is 75 kg and they are at terminal velocity, then the gravitational force
$$F_g = -mg$$
will equal the aerodynamic drag force which can be approximated as
$$F_D = \frac{1}{2} \rho v^2 C_D \ A$$.
With a density of air of about 1.2 $kg/m^3$ (it varies with altitude and temperature) and an area of 0.7 $m^2$ , and setting
$$F_g+F_D=0$$
once terminal velocity is reached (no further acceleration) I get a $C_D$ of 0.58, similar to the value of 0.5 used here.
More to read here and here and here.
Since it seems to have happened, it seems to be possible. Extensive preparation by trained and experienced people were needed.
def deriv(xv, t):
x, v = xv
rho = rho0 * np.exp(-x/h_scale) # atmospheric density
Fd = 0.5 * rho * v**2 * CD * A
a = -g + Fd / m
return [v, a] # xdot, vdot
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint
# these numbers have been fiddled with until the time of 128 sec was reached.
# this is just a ballpark estimat
alt = 25000. / 3.3 # meters
h_scale = 7600. # meters
rho0 = 1.22 # kg / m^3
g = 9.8 # m/s^2
m = 70. # kg
CD = 0.65
A = 0.75 # m^2
xv0 = [alt, 0.]
t = np.linspace(0, 128, 100)
answer, info = ODEint(deriv, xv0, t,
rtol = 1E-10, atol = 1E-10,
full_output = True )
x, v = answer.T
plt.figure()
plt.subplot(2,1,1)
plt.title('altitude (m)')
plt.plot(t, x)
plt.subplot(2,1,2)
plt.title('velocity (m/s)')
plt.plot(t, v)
plt.show()