A hospital doctor headbutted a young waiter after he turned up three hours late for his table and was told the restaurant was closed.