Python 3, 167 166 bytes
import time,random
t=time.time
p,s=input(),t()
while t()-s<len(p):print(p[:int(t()-s)]+''.join(chr(random.randint(32,126))for _ in range(len(p)-int(t()-s))))
print(p)
import time,random
t=time.time
p,s=input(),t()
while t()-s<len(p):print(p[:int(t()-s)]+''.join(chr(random.randint(32,126))for _ in range(len(p)-int(t()-s))))
print(p)
Reads input from stdin. A 171-byte version runs under Python 2 (replaced input with raw_input):
import time,random
t=time.time
p,s=raw_input(),t()
while t()-s<len(p):print(p[:int(t()-s)]+''.join(chr(random.randint(32,126))for _ in range(len(p)-int(t()-s))))
print(p)
import time,random
t=time.time
p,s=raw_input(),t()
while t()-s<len(p):print(p[:int(t()-s)]+''.join(chr(random.randint(32,126))for _ in range(len(p)-int(t()-s))))
print(p)
Ungolfed:
import random
import time
p = input()
start = time.time()
while time.time() - start < len(p):
print(
p[:int(time.time() - start)] +
''.join(chr(random.randint(32, 126)) for _ in range(len(p) - int(time.time()-start)))
)
print(p)
import random
import time
p = input()
start = time.time()
while time.time() - start < len(p):
print(
p[:int(time.time() - start)] +
''.join(chr(random.randint(32, 126)) for _ in range(len(p) - int(time.time()-start)))
)
print(p)