you should be able to do that with the ArcMap Labeling engine. You need to create different classes for the same field, then use the Expression Dialog box to create the SQL query to define the labels differently (or check the fields in your road attributes, maybe there is more than one field to label with, you might be able to use more than one field). if i am wrong in assuming you tried this, then load another road layer into the map, produce the additional labels you need, send them to annotation, then turn the second road layer off, but keep the annotation on...this way you can add more labels without so much SQL work. you may need to work with the offset and placement strengths after that to get them where you want them. should work fine....