On some platforms, the answer is yes. While the POSIX standard specifies the current working directory as per-process not per-thread, some platforms provide a per-thread working directory as a non-standard extension. To my knowledge, the only platforms having this feature are Linux and XNU (macOS/iOS/etc), although their APIs for setting the per-thread working directory are fundamentally incompatible with each other. If those are the only platforms you need to support, you could use their per-thread working directory support.
However, it would mean your software (or this aspect of it) would be fundamentally non-portable – it is never going to work on Windows, Cygwin, FreeBSD/OpenBSD/NetBSD, Solaris/Illumos, AIX, etc, since those platforms lack the concept of a per-thread working directory. It is possible one or more of them may add that support in the future, but there's no guarantee that will happen for any of them, and it could be years away even if it does.
In terms of details of the Linux and Apple APIs to do this, I explained it in my answer to another question, so I won't repeat those details here.