If you set the
edit_headers option to
yes, you can edit all the headers of a mail before sending, and you can set your own
Date header. A legitimate use for this is choosing your own timezone, or your own calendar.
Each server that your email passes through will add a
Received header containing the date at which it received the mail (or the date at which it deigned to process it). You can't fake these unless you have control of the server. More precisely, from the recipient's point of view, the headers are reliable starting with the last machine on the path that the recipient trusts.
A common reason for email delays is greylisting. It can be hard to predict whether a specific email will be greylisted, because the decision is partly based on a server's recent history with each sender. However, not all servers do greylisting, and the greylisting could add to your lateness anyway.
Of course, email can be delayed because of malfunction, ordinary maintenance, or general network flakiness. Email was designed to be extremely reliable but not necessarily fast (when it was invented, a lot of sites had no permanent network connection; email might be downloaded and uploaded once a day in some places). Nowadays, email isn't as reliable as it used to be, but it's often near-instantaneous. A delay can happen, but it's unusual.
If you don't know when your assignment is due, ask your instructor.