As far as I know, those two are the only exceptions. Is there a particular reason for this?
The Diccionario Panhispánico de dudas says that "Santo" must be used with Domingo, Tomás, Tomé and Toribio. (Thanks Gonzalo Medina for pointing this out)
The reason to prefer to use "Santo" is to avoid confusion in oral speech. Quoting a WordReference thread:
Technically, any male saint, or "santo", could be called "Santo", and it would not be strictly wrong (although it would be very uncommon) to say "Santo Pedro" or "Santo Juan". However, the custom for male saints is to abbreviate the title "Santo" to "San".
The exception to this rule is when the first syllable of the name is "To" or "Do". Under those circumstances, if one said "San Tomás", it would be unclear whether the man's name was Tomás or just "Mas" -- because you could be saying "Santo Mas". In the same way, if you said "San Domingo", it would sound very much like "Santo Mingo", and again confusion would result.
As dusan says, the reason for the cacophonous lack of apocope is to avoid ambiguity in interpreting the saint's name:
- San Tomé =
/ˈsantoˈme/= Santo Me
- San Tomás =
/ˈsantoˈmas/= Santo Mas
- San Toribio =
/ˈsantoˈribjo/= Santo Ribio
- San Domingo =
/ˈsantoˈmingo/= Santo Mingo
Traditionally these are the only four saints treated as such, but there are others with an initial unstressed To-/Do-. Some of these would not require such a rule because the break is mid-syllable and would leave an unpermitted onset consonant cluster (e.g. San Torpetes, San Torcuato), but others have similar phonetic contexts to the four above, yet are not treated as such, possibly due to them simply being less popular (e.g. San Doroteo).