The short answer is no, it is not possible to DIRECTLY block this type of connection. It is possible to block some types of traffic based upon the IP protocol being used. A common example is to block ping requests by refusing ICMP traffic. In this case, ICMP is the protocol used over IP. The IP header has a flag that indicates the traffic is ICMP and the type of ICMP request. Either or both of these can be examined by a

Telnet and HTTP both use TCP protocol over IP (as well as many other services). There is nothing in a telnet header that distinguishes it from a HTTP header or any other TCP traffic. You must either allow TCP traffic to a port or deny it. With this in mind, if you want to allow HTTP traffic on port 80, you must accept all TCP connections on that port.
Once the connection is made, there are some things in the actual data that would indicate that the connection is coming from a telnet client instead of a http client. Most notably, the initial data from a telnet client will be sent one character per packet, maybe two if you type really fast. In contrast, a traditional http client will sent complete http request in one or two packets starting with the third packet of the connection.
It would be fairly simple to detect the small packets with some firewalls and kill the connection. This is not really blocking the connection, as you would have to allow the initial connection to get at the subsequent data, but it would have the effect of disallowing connections from a telnet client. Another method would be to filter the first few packets and kill connections that do not have some of the key elements of a proper http request.
A better method would be to configure the http server to refuse connections from clients that do not provide a proper http header. It certainly is possible to send a reasonable header from telnet, but it would involve a bit of very accurate typing. Cumbersome at the very least. In this case, as with the other method the TCP connection is technically allowed, but nothing in the way of meaningful data is passed.
I don't really see much point in blocking this type of traffic. Telnet to a non-telnet server can be a useful diagnostic tool, not much use for anything else as the connection is closed after each exchange.
_______________________________________
"Hi, is it possible to block telnet access to a port that is eg listening on port 80."
No---telnet access exists on any port---you would have to block access to that specific port (acl).
"If a service is listening on a port will you always be able to telnet to it?"
Not necessarily "listening" on it, per se, but simply if the port is open and/or enabled, then yes---telnet ability always exists. To separate confusion...
Telnetting into a device on its native port (23) allows a remote console session.
Telnetting into a device by redirecting the port to a different port verifies layers 1-7 connectivity---telnet in general tests all 7 layers of the OSI model.