Well, first the bad news. No format specifier in Access FORMAT function seems to support a fractional seconds format. However, the date/time variable has room for at least a few fractions. Based on some really quick-and-dirty computations, date/time variables have about 16 bits occupied in the day-number and 17 bits in the time of day accurate to seconds. (Actually, it doesn't come out even, but I said this was quick-and-dirty.)
A date/time variable is a double (real) that supports 64 bits, of which I think 56 are fractionals. So you have room for 23 bits, or about 0.000000126 seconds as the least-significant bit. Even if I did it wrong and you have 48 bits for fractions, you still have 15 bits, good enough for 0.0003 seconds and change...
You can actually treat a Date/Time like a Double, but the problem will always be to get the time and date extracted from it. Date is really no problem, even if you have added in the oddball fractions. The Format routine will do that part right. But to get back the fractions, you need to finagle it a little bit.
Remember this number well: 86400 seconds/day.
If you convert a date/time variable to a double variable (use CDbl to do it), you can strip out the day part. It is merely the number you get by doing a CLng of the double. Then convert that back to a double (this time having no fractional part). Subtract the day number from the Double. What is left is the fraction of a day since midnight.
If you multiply THAT by 86400, you get the number of SECONDS since midnight as another integer. Any fraction that is left is your fractions of a second.
If you understand this relationship, you can manually generate a VBA function that will handle this complex formatting function for you. (If you don't understand VBA, you might not be able to do this quite so easily.)
Now, having confused the issue, I personally would take this approach. I would use FORMAT function and the user-defined date/time formats to generate the date string. Then I would compute the number of seconds and convert that to hh:mm:ss format manually (because I want to avoid inherent rounding). Finally, I would use FORMAT on the remaining fraction with no leading 0, just a decimal point and some numbers.
When it was all done, I would concatenate it all together in the right order and proudly display my date/time as
dd-mmm-yyyy hh:nn:ss.fff
Be warned that if you let Access do the time formatting for you, there is a chance that seconds might be rounded up in some cases. Which is why I said I would do the time format myself.