With an 8 byte value (64 bits) you will have 2^64 possible outcomes. That's quite a few but significantly less than a GUID which has 2 ^ 128 possible values.
You could do something this simple:
// generate 8 byte random value
Random rnd = new Random();
byte[] bytes = new byte[8];
rnd.NextBytes(bytes);
// displaying the value
string myRndID = BitConverter.ToString(bytes).Replace("-", "");
Console.WriteLine(myRndID);
For example:
XXXX YY ZZ
---- -- --
Random Value Node ID Days since epoch (of your definition)
Then:
Cat XXXX, YY and ZZ bytes together to create your pseudo-guID.
But that approach uses only random number generation. You could take a hint from the GUID algorithms (current and past) and populate some of the 8 bytes with a node ID value or a DateTime hash or something such combined with a random value to reduce the risk of collisions.
Still, the potential for collisions is there and if you do end up using an 8 byte pseudo-guID you should have a process defined for handling a collision.