Below the table is the note:
Laser aperture size: 80mm, Ka-band antenna size: 300mm, X-band antenna size: 600mm. Assuming physical limits for lowest possible beam size.
90% of the problem is solved by looking at $d/\lambda$ which is the initial diameter of the beam expressed in wavelengths.
From the following:
I'll choose wavelengths for Ka-band and X-band of $c/32$ GHz and $c/8$ GHz where $c$ is the speed of light.
For the optical link we can go to this page https://mynaric.com/products/space/condor-mk3/ where they show they're using standard long haul single mode fiber communications wavelengths around 1550 nm which makes sense since they are pushing extremely high data rates and the fiber lasers and erbium doped fiber amplifier technology and fancy modulation/demodulation schemes are very well developed.
With the initial free-space beam diameters of 0.08, 0.3, and 0.6 meters from the table that gives $d/\lambda$ values of 94,000, 32 and 16.
The wider the initial beam size in wavelengths, the slower it will expand. This is a basic result of any circular diffraction calculation, or as Uwe reminds us, of Gaussian shaped beams as well.
So I predict that the light beam will be 52000/32 or about 1,600 times narrower than the Ka-band beam. It's not exact, but it's quite close; about 1,200 times smaller. So we've found the right metric.
Below I've plotted the beam size, the ratio size/distance and the size/distance ratio scaled by $d/\lambda$ and for the third metric we see that all three are almost the same.
The final value is ~1000 because the y axis in meters and the x axis is in kilometers. If the same units, it would be around 1.

import numpy as np
import matplotlib.pyplot as plt
distance = np.array([50, 200, 1400, 4000.]) # km
laser = np.array([1, 5, 35, 111.])
Ka_band = np.array([1600, 6500, 45000, 145000.])
X_band = np.array([3200, 13000, 90000, 290000.])
beams = laser, Ka_band, X_band
names = 'laser', 'Ka_band', 'X_band'
c = 3E+08 # m/s
f_Ka_band, f_X_band = 32E+09, 8E+09 # Hz
wavelengths = np.array([1550E-09, c/f_Ka_band, c/f_X_band])
diameters = np.array([0.08, 0.3, 0.6])
lines = '-', '-', '--'
fig, (ax1, ax2, ax3) = plt.subplots(3, 1)
for beam, name, lam, d, line in zip(beams, names, wavelengths, diameters, lines):
ax1.plot(distance, beam, line)
ax2.plot(distance, beam/distance, line)
ax3.plot(distance, (beam/distance) * (d/lam), line)
if True:
ax1.set_xscale('log')
ax2.set_xscale('log')
ax3.set_xscale('log')
ax1.set_yscale('log')
ax2.set_yscale('log')
ax3.set_yscale('log')
ax2.set_ylim(1E-03, 1E+03)
ax3.set_ylim(100, 10000)
else:
ax3.set_ylim(0, None)
ax3.set_xlabel('distance (km)')
ax1.set_title('size')
ax2.set_title('size/distance')
ax3.set_title('(size/distance) / (initial size/wavelength)')
plt.show()