Google Cloud Registry and multiple projects
Yes, it's possible. Fundamentally GCR is built on top of Cloud Storage, with roughly the same basic access control:


public, i.e completely accessible
private, with quite flexible access control from pretty much anywhere, even from outside the GCP domain - being in a certain GCP project is rather irrelevant.


From Granting users and other projects access to a registry:


  To give specific users or container clusters running on other projects
  permissions to pull images from a registry, you need to grant read
  permission on the underlying Cloud Storage bucket.
  
  ...
  
  
  Select the Permissions tab.
  Click Add members.
  From the menu that appears, fill the Members field with the email addresses of users needing read permission, separated by commas.
  This email address can be one of the following:
  
  
  a Google account (for example, someone@example.com)
  a Cloud IAM service account
  the Compute Engine default service account of another project. This account is used by the Google Kubernetes Engine to pull
  container images clusters by default. It is in the form
  [PROJECT_NUMBER]-compute@developer.gserviceaccount.com, where
  [PROJECT-NUMBER] is the GCP project number of the project that
  is running the Google Kubernetes Engine cluster.
  
  


There are some differences from Cloud Storage, most notable ones being:


access control applies to the bucket level only, object level access is ignored
GCR can only have a single bucket per GCP project