However, it's just morally awful and I doubt (hope?) it's not actually more effective than just building a team where you don't have to do this.
If an employee is consistently missing deadlines, it's the fault of whoever put that employee in that position - either the employee was mis-hired, the tasks given to the employee are not do-able with his skillset, he hasn't been given enough support to accomplish the task, etc. Criticizing in private is just as bad as in public here - you need to stop criticizing and fix the problem at the root cause!