We've got already such module - It's called campaign manager and uses list manager. You can buy it in the store.
You could build a list using dynamic crits - with group criteria. It will get refreshed everyday. Then create a messages list that will be sent after X days since element has been added to list. Or sent messages manually - click "Send" on desired day. With scheduled message every receipient will receive messages after days since he's been added to the list. Not since the list creation. With such approach you can create queue of message and every receipient will receive them exactly X days after you've added such contact.