I can't really support this very easily because the current version of OBS doesn't account for desktop sound very well. It'll be fixed when the multiplatform version is fully ready for windows, but due to a design flaw with the regular windows version it depends upon desktop sound, making it very hard to change the sync for.
(Copy and paste) To delay the desktop audio:
1.) Set 'scene buffering time' in advanced to 2000 (1500 + 500 extra for buffering). This option name is confusing, but it's more of an audio buffering-related option.
2.) Set 'global audio sync offset' in advanced to 1500
3.) If using the mic via the audio settings, then set 'mic audio sync offset' in audio settings to 0 (Global audio sync offset is now putting everything forward 1500 so there's no need to use it on the mic)
4.) Go in to the properties of the source for your elgato, and set its 'audio sync offset' on the right hand side of the window to -1500 to compensate for the global audio time offset.
5.) If using a webcam, go in to its properties, and set its 'audio sync offset' on the right hand side of the window to -1500 as well to compensate for the global audio time offset, and then set 'use buffering' to 1500.
Following these steps properly should ensure about as close as a sync as possible, but otherwise due to the design flaw with desktop audio capturing, I can't really spend too much time on it for the current windows version. Best thing is for me to spend time getting the newer windows version ready with proper options to be able to do this much more easily.
This entire method is more of a hackish method of working around the problem but is a configuration nightmare. I would recommend waiting for a multiplatform build with sync options more than anything.