The PIC has enough current to drive each of the segments of the display directly from the PIC (presuming the voltage necessary is less than 5V, in which case you'll want to include some resistors as appropriate, or run your PIC at a lower voltage if possible).
The only problem with the PIC you're using and doing this, is that you don't have enough I/O pins on the 18F2331 to have one each for all four seven-segment digits. The easiest way around this I can think of is to get either a 74LS47 (for common-anode displays) or 74LS48 (for common-cathode displays) binary-coded-decimal to seven-segment driver for each seven-segment digit. That way, you'll only have to use four I/O pins from the PIC for each digit (16 pins in total). The decimals (if you're using them for the ":" part of the display) can obviously be set by direct connection to your power source if they're not being toggled in any way.