In Hybrid scenarios, you can easily address this by configuring an new email address policy: https://learn.microsoft.com/en-us/Exchange/email-addresses-and-address-books/email-address-policies/email-address-policies?view=exchserver-2019
If for some reason you are not able to leverage Email address policies, the "second best" solution is to use PowerShell. In particular, the -WindowsEmailAddress parameter of Set-Mailbox does exactly what you are looking for - it adds the new value as primary SMTP address, while preserving the old one as secondary. It does not change the UPN or anything else. Here's an example:
Set-Mailbox user@domain.com -WindowsEmailAddress user@newdomain.com