IIRC, signing (in java) is <300 microseconds (depends on hardware ofc) , so 1M accounts = 300 seconds, that's bit too much (network could be much further already...)
OFC, you could go with C implementation.
but 10_000 accounts should be doable.
You rely on
signing in NEM to decide who harvests the next block?
In Nxt only SHA256 is required to pick the forger among accounts when effective balance is known, this is why it's that fast.