I agree with the multiplexing suggestions. Not sure your '4017 is a good choice though.
Most multiplexing designs will power one column or row at a time while driving one or more of the LEDs in that column or row, respectively.
If we "scan" columns, duty cycle is inversely proportional to the number of columns (2 cols = 50% duty cycle, 4 cols = 25% duty cycle, 8 cols = 12.5% duty cycle, etc.). If an individual LED requires 10-ma current for full brightness at 100% duty cycle it's going to need 20-ma at 50% duty cycle, 40-ma at 25%, and 80-ma at 12.5% for full brightness. If you have an 8 x 8 matrix of multiplexed LEDs you'll have a 12.5% duty cycle and each column driver should be capable of supplying 640-ma when all 8 LEDs in that column are lighted. Each row driver needs to supply 80-ma for one LED at a time in each column.
Directly driving rows from PIC pins works well for one or two columns but the brightness starts to suffer as we add more columns. Use row drivers if you have more than a few columns and you need full brightness.
You can see we're using a lot of pins at this point so you might consider using a different driver IC with the common anode LED configuration. The Micrel MIC5821 or the pin-for-pin compatible Allegro A6821 is an 8-bit serial to parallel sinking driver with a 3 pin interface (Data, Clock, and Strobe). Here's a full brightness design that uses 9 I/O pins.
In this design PORTB is used as a column driver bus when the Strobe/OE pins are low (display on) and as a data bus to load the driver shift register when the Strobe/OE pins are high (display off). Simply blank the display at the beginning of each "scan" interrupt by taking Strobe/OE high, load new data into the SR, reset the PORTB column bus for the next column, and finally turn the display back on by taking Strobe/OE low. This only takes a few microseconds in the ISR.
You can also setup the PIC PWM module with a period equal to the column "scan" interval and drive the MIC5821 Strobe/OE pins directly from the PWM CCP1 pin output. You'll need a minimum PWM duty cycle of 5% or so to insure that you have time at the beginning of each interrupt cycle to load the SR while the display is off. Adjusting the PWM duty cycle from 5% to 100% will take the display from full brightness to black, respectively.
While these examples use 7-segment displays, I'm sure you realize you can use discrete LEDs or Bar/Graph LEDs or 8x8 matrix modules instead. And the "high performance" designs also scale up or down quite nicely.