Does WP have a hook for the use of wp_trim_words?

Browser resolution is set on the user end. Actually, the window may even be resized after the page has been loaded. Css media queries will deal with that on the user end.

So, when the page is generated on the server side, the user window size is unknown and you cannot determine how many words to serve at that point. It has to be done on the user end.

The easiest approach would be to include the longest excerpt and wrap the last 30 words in <span> tags, which you hide using css on smaller screens.

A more complicated approach would be to detect screen size using jquery and then call the rest api to retrieve the relevant excerpt.