Yes, it will show the shared album on every profile as that's how Asset works. Asset determines what is displayed. If you need user specific Assets you have to use substitutions, which the Asset parameter supports. For example you could have a field that stores the users collaborator user id. Example as follows
Field: cb_collaborator
Type: Integer
Then for User A they'd have User B's user id. So lets say for example that's 621. Now in Asset you can substitute that in as follows.
profile,uploads,[cb:if cb_collaborator!=""]profile.[cb_collaborator][/cb:if]
This is going to show every profile gallery entry of User B on User A though unless again the album has a unique asset. So for example if the album has something like "shared.621" then you'd have the below.
profile,uploads,[cb:if cb_collaborator!=""]shared.[cb_collaborator][/cb:if]
Since this is project based through you probably need a value that both User A and User B would have. So you'd probably have the below.
Field: cb_project
Type: Integer
profile,uploads,[cb:if cb_project!=""]shared.[cb_project][/cb:if]
Now both User A and User B just need to set cb_project to the same value.