There are a number of ways you can do this within the existing SendGrid infrastructure.
You sound like you'd be a good fit for the SendGrid Marketing Email API. With this API, you can add users to lists with custom fields (e.g. username); create email templates (complete with substitution for custom fields; assign different lists to email templates, and then schedule them to send.
The other option is to use SendGrid's SMTPAPI with Substitution Tags. Here you can specify any amount of arbitrary fields and then send it to the emails you specify using one API call.