As I understand it, one proof of the Halting Theorem is done by contradiction; we assume we have program X which can determine if any program terminates. We input program X into program X (with some modifications at the output), and we arrive at a contradiction. However, is it possible for a program Y to exist, where program Y can determine if any program (except variants of Y itself, or most loosely any finite set exceptions) halts?
If the set of exceptions must be infinite, can we have at least the set of permissible inputs be infinite itself?
Please try to keep the answers at a lower level, I know a little bit of mathematics but I am a complete layman in computer science.