I think that’s controlled by Pandas not Jupyter. Pandas has a lot of options for customising the display: Options and settings — pandas 1.3.4 documentation
but after a quick glance it doesn’t look like there are any font options.
The content font is system-determined, and eventually falls back to sans-serif… but this is almost always going to be variable width, because most (western) scripts look better that way for prose.
A simple, cross-platform, ugly way to force fixed-width would be: