Yes, this could definitely be done.
You can use the Requester Pays feature to require that requesters include a billing account project in their requests.
The requester's project is then billed for access charges instead of the owner of the accessed bucket.
For more info regarding how to utilize this feature, have a look at https://cloud.google.com/storage/docs/requester-pays