The Cat3K switches running 12.2(52)SE and higher have a neighbor event detector that can monitor CDP (and LLDP) changes. And, yes, you could shut/no shut an interface. With another version of IOS or on another platform, you could use a timer policy that runs periodically, checks the output of "show cdp nei" then performs the shut/no shut based on the neighbor data.
This policy might be a good starting point for the timer-based approach:
http://forums.cisco.com/eforum/servlet/EEM?page=eem&fn=script&scriptId=161