I connected 6 pieces of APA102C to 16F886 and they all work fine, control appears to be quite straightforward and simple:

SHIFTOUT di, ci, 1, [%00000000,%00000000,%00000000,%00000000] - to initialize transfer and then
SHIFTOUT di, ci, 1, [%11111111,B,G,R] - enables 1st led in a row at color defined with BGR values and common brightness register value.

The issue I see, is that I want to illuminate say led #4, I have to keep in 6 variables values for all leds, and actually "redraw" the whole led string. Or another solution is, to have array with length of the led string attached, update data in it, and have one common "refresh" routine, which reads data in array and updates it all at once. But both this methods will be significantly slow, in case of say 150 or more leds, since shiftout is software routine, and when I tried to do scrolling marque with 4x MAX7219 8x8 led matrices, the slow redraw speed was quite noticeable.

So are there any other, more efficient and faster ways, so say if I want to update led #240, in 256 led string, won't have to "redraw" the complete led string.