I'm not for sure about being able to check if the file is being accessed by another process, however, when creating the filename you could use the below code in order to make sure that each user has a unique file name...
sFName = MapPath(Session.SessionID.ToString & ".pdf")