I us soundflower for audio and my is a consistent couple seconds behind. I am not super tech oriented so I am not sure what to do. I am capturing iPhone footage via quicktime I am not sure if its quick times issue or OBS's
Go to the Soundflower icon, then to "Soundflower 2ch" or "Soundflower 64ch" (whichever you're using) -> Buffer Size, and see what it's set to. If you have a fairly large buffer size, this could be the reason. I think mine initially defaulted to 512, so check and see if any of the smaller sizes seem to help you.
Changing it to a smaller buffer size will mean less delay, but will also be slightly more taxing on your computer. The buffer size is the amount of time you're allowing for your sound card to process incoming audio, so as you decrease the number, two things happen: there is a shorter window (less delay) between input and output, and more processing power required for this quicker turnaround time.