You could fire each task after the previous has finished using Task.ContinueWith. See this related answer for more detail.
DB queries return rows affected which is how you would tell the database had finished running the query you executed, rather than just having passed it off to the database.
The advantages I see with using a method like this over simply sleeping the threads are that you'd never have multiple tasks running at once and there would be no downtime between tasks.
How crucial that is depends on your situation which you have greater insight into.