there are about a hundred ways to do this, but I just did this one quick and dirty. Let's assume you have a drawing named "D", with a field called "tp" that has your road types:
Set roads = document.ComponentSet("D")
Set qry = document.NewQuery("Q",true)
Set qry2 = document.NewQuery("Q2",true)
qry.text = "select tp from D group by tp"
for each rec in qry.Table.RecordSet
thetype = rec.Data("tp")
Set newdrw = document.newdrawing(thetype,roads.CoordinateSystem,true)
qry2.text = "update D SET [Selection (I)] = true WHERE tp = " & chr(34) & thetype & chr(34)
the above script will get all the unique names in the column tp, then for each of those names, it will issue a query to select the records with only that unique name by updating the table selection. Then, it copies the records and pastes it into the new table.
It's a pretty short script, but really useful - it only took about 5 minutes to write it (I hadn't written Manifold VBScript for awhile). If you want to learn how to script like this, check out the Scripting Manifold with VBScript course.