I am trying to make a sheep in which players can punch through, sadly I have had no ideas on how to do this. Does anyone know how or is it impossible in Minecraft's current state?
Due to the way Minecraft handles raytracing/hit detection this is not possible. In the code, it checks both to see if you are facing a block within hit range, and it finds all entities within hit range that you are looking at. It simply selects the closest out of all of them, so if there is a sheep in the way of a block you can only hit the sheep. This can be changed with a mod but it would be more of a technical-utility mod (and nobody really cares enough to make something like that).
On the command block side of things I don't believe there is a way to do this either. There is a scoreboard statistic for killing a specific type of entity, and a damageDealt stat for when you attack ANY entity, so unless you want to detect players that have KILLED sheep it cannot be done easily with commands either.