SQL server compare a field with another that is composed of a list separated by commas of the 1st field
Maybe a simple like will work for you:

','+tContactoTerritorio.territorios+',' like '%,'+tTerritorio.terrNome+',%'


I'm adding commas at the beginning and end of territorios assuming the first and last occurrences don't have them. Then you look for '%,terrnome,%'.
(Obviously this is a terrible way to search for a string but it's also a terrible way to store data)

SELECT terrNome             AS Territorio,
  espDescricao              AS Especialidade,
  COUNT (DISTINCT contNome) AS 'Nº Médicos'
FROM tContacto,
  tContactoTerritorio,
  tTerritorio,
  tEspecialidade
WHERE tContacto.contID   =tContactoTerritorio.contID
AND tContacto.tpcontID   =120
AND ','+tContactoTerritorio.territorios+',' like '%,'+tTerritorio.terrNome+',%'
AND (tEspecialidade.espID=tContacto.esp1ID
OR tEspecialidade.espID  =tContacto.esp2ID
OR tEspecialidade.espID  =tContacto.esp3ID
OR tEspecialidade.espID  =tContacto.esp4ID
OR tEspecialidade.espID  =tContacto.esp5ID)
GROUP BY terrnome,
  espdescricao