The bit rate is 1/Bauds (for simple serial data) rate so each bit lasts 1/9600 seconds = 104.4uS. Each byte is typically 10 bits, start bit, 8 data bits and a stop bit so the time per BYTE is 1.042mS. Be careful not to confuse the bytes with the packet frame which could be several bytes long.
You might be able to use a software delay function, it depends on how the assembler/compiler code works. The problem is that in many cases the delay function is a 'blocking' one, you can't get out of it until the delay period is finished, that can make it more difficult to monitor for incoming data at the same time.
Something to consider: The packet may consist of many bytes but just multiplying the number of bytes by the byte duration may give a wrong result. It assumes there is no gap between the bytes. Depending on your code it is possible there is an additional 'inter byte' delay you have to factor into the calculation. For example, 10 bytes sent "back to back" would take 10 * 1.042mS = 10.42mS but if there was any delay between one byte and the next, the total would be a longer period.
Brian.