Here are some results of me playing with a map and ground tracks. I took a plot of ISS ground tracks and overlaid it onto the most detailed map of time zones from Wikipedia.
First and foremost, time zones are weird. Even if we take "regular" time zones only and don't look at any of the political decisions, Earth has 25 time zones from UTC+12 to UTC-12. On top of that, there are 13 further differing time zones with times like UTC+12¾ on the Chatham Islands.
None of these zones is placed further North or South than 51° latitude in its entirety, i.e. all 38 of them can be visited by ISS in one orbit or another.
To start off with a curiosity: You can cross the international data line at least 6 times (possibly 8 if we trust the drawing on the map to be precise) during a single orbit:
To get a minimum number of time zones to cross, we have to look for possibilities to "skip" the regular ones. E.g. we could skip
- UTC+0 by passing over Western Sahara
- UTC+4 over the right part of Russia
- UTC+5 over Iran (although at the cost of taking Irans own UTC+3.5 zone)
- UTC+7 over China
- UTC-4 over Argentina
Others like UTC+2 can't be skipped by ISS because Ukraine extends further North than the 51° inclined orbit reaches.
For some other time zones the map looks like they could be skipped, but these happen to be over international waters where the default time zone based on 15° segments applies.
Actually it seems possible to skip two of them in the same orbit, totaling to 22 time zones crossed:
The maximum of zones can be visited by including as many of the special time zones as possible, e.g. UTC+5¾ of Nepal or UTC+14 of Kiribati. Judging the exact amount is difficult from the map, because zones around islands are shown larger than they actually are. Anyhow, I was able to find an unambiguous 32 time zone orbit that doesn't make use of islands: