I have come to the conclusion that there is no way to disable this check in apt, the code that implements the check is the following in methods/gpgv.cc.
if (strncmp(buffer, GNUPGKEYEXPIRED, sizeof(GNUPGKEYEXPIRED)-1) == 0)
{
if (Debug == true)
std::clog << "Got KEYEXPIRED! " << std::endl;
WorthlessSigners.push_back(string(buffer+sizeof(GNUPGPREFIX)));
}
And it doesn't seem to be be behind any form of conditional.
However the check can be worked around by using faketime. e.g.
faketime 2017-01-01 apt-get update