Sorry for the late reply. I thought I had posted a reply two weeks ago but it turns out I must not have.
Unfortunately I think what you want to do is not really possible... at least not nicely.
It is theoretically possible to connect with different credentials programatically but the service would then appear (even if momentarily) to the user and they could inadvertently modify folders that the service account has access to which is probably not what you want.
If you elaborate more on why you would like to do this, then perhaps I could suggest an alternative.