By default, most ASP.NET functions run under the app pool identity, which, by default, is NETWORK SERVICE. This means that the computername$ account is seen across the network.
Some things run as the website's anonymous user account, which is IUSR_computername, and if you set impersonation="true" then most things will run as the IUSR_computername.
If you can place your site in a dedicated app pool, my recommendation is to create a custom user for your app pool, using passthrough auth as you suggested, with the same user/password. The user must be added to the IIS_WPG group on each server. Then make sure that impersonation is set to false, or isn't set (false by default). Then that user will be used for network access.
It's possible that you will still get Code Access Security (CAS) errors. If so, you'll need to grant the UNC path access using the caspool tool.