One more thing to clarify:
Does your de-sync increase gradually throughout the recording? Or is it off by the same amount throughout?
If it's off the by same amount throughout, then there's a setting for that!
Edit -> Advanced Audio Properties -> Sync Offset
Positive numbers make the audio come later, negative numbers make it come earlier...to a point.
The better way to make the audio come earlier, again as a constant thing throughout, is to delay to the picture.
Right-click the source -> Filters -> Audio/Video Filters -> Video Delay (Async)
If it's not constant, but gradually gets more and more out of sync, then none of that will work. It'll offset the problem, but not actually solve it. In this case, you can go ahead and record a file that has the problem, then load that file into a video editor that allows you to work with the picture and sound separately, and adjust the speed of one or the other so that it lines up throughout. (or close enough) Then export that as your final recording.
I like Shotcut because it's free, runs on everything, does a lot, and it's easy enough to start with and grow into, but anything that can separate the soundtrack and adjust the speed independently will do.
Shotcut is a free, open source, cross-platform video editor for Windows, Mac and Linux
shotcut.org
If you go this route, you'll want to set OBS to produce an exceptionally high-quality file (*), that will take a lot of space on your hard drive (and less work for your CPU to make), and let the *editor* do the compression into something more reasonable. Then delete the intermediate file.
(*) Not necessarily high dimensions - keep the 640x480 - but it's using a lot of information to describe everything in detail, instead of only what you're likely to notice at a casual glance. Several rounds of throwing everything away that you probably won't notice, is called "generational loss", as what the next stage has to regenerate becomes more detail to be preserved at the expense of some more original, and you DO notice that!