WordPress has a list of reserved words, can I override them, to use one in a query string?

No.

You could try to remove year from the whitelist of query variables, but this would cripple date archives, break all date based filtering in WP Admin, as well as break any plugins or themes that rely on this functionality. This doesn’t just impact user interface, but any date based query internally

E.g. sitemaps in core would break, year based RSS and REST API requests, as would all the admin dropdown filters, calendar widgets, and any time based logic in recent posts queries, etc.

Suffice to say the damage could be significant

These are not just URL variables, query variables run much much deeper and are the keys to parameters in WP_Query, hence the name. They’re the key component that makes rewrite rules work. When you visit example.com/2019 it gets mapped on to index.php?year=2019 which becomes WP_Query( [ 'year' => 2019, ... ] ), etc As far as WordPress is concerned, /2019 /index.php?year=2019 and /?year=2019 are all exactly the same

As for removing that query var, it might be necessary to fork WordPress to do it. This is one of those situations where saving yourself 5 minutes could involve 5+ years of effort, it is not a profitable trade.

Have you considered renaming your variable instead? Perhaps archive_date or filter_date?