No, HTML no se considera un lenguaje de programación en el sentido tradicional. HTML es un lenguaje de marcado («markup language» en inglés).
La distinción fundamental es que los lenguajes de programación, como JavaScript, Python o Java, están diseñados para ejecutar lógica, realizar cálculos, tomar decisiones (mediante condicionales if/else), repetir tareas (con bucles for o while) y, en general, para controlar el comportamiento de un sistema. Permiten crear algoritmos y procesar datos de manera activa.
Por otro lado, HTML se utiliza para describir y estructurar el contenido de una página web. Define qué es cada elemento: esto es un encabezado (<h1>), esto es un párrafo (<p>), esto es una imagen (<img>), etc. No posee la capacidad de realizar operaciones lógicas ni de controlar el flujo de ejecución. Simplemente «marca» el contenido para que el navegador sepa cómo interpretarlo y mostrarlo.
Para añadir interactividad y funcionalidades de programación a una página HTML, se recurre a lenguajes como JavaScript.