So rogue itself doesn’t offer much of anything for maximizing your number of attacks. Sneak attack rewards maximizing your number of attacks, so rogues often seek many attacks, but you have to get them elsewhere. They don’t come with the class.
Throwing daggers, on the other hand, is a pretty solid way to get many attacks, since you can combine two-weapon fighting feats with ranged-attack feats, both of which offer extra attacks. A basic combination of Two-Weapon Fighting, Improved Two-Weapon Fighting, and Greater Two-Weapon Fighting with Rapid Shot nets you four extra attacks. Throwing daggers also requires Quick Draw and, realistically, Far Shot and Precise Shot, plus Rapid Shot requires Point Blank Shot. That’s eight feats: a rogue can do that, using one of the talents for a bonus fighter feat, but that means the character is doing absolutely nothing else with feats.
Combined with rogues’ ¾ BAB granting a couple of iteratives, that’s seven attacks. Rogue is adding 10d6 damage to each of them if the target is missing its Dexterity to AC, so rogue benefits from the large number of attacks (or equivalently, a character with these attacks benefits from rogue levels), but it isn’t adding any attacks.
Obvious quick dips for more attacks include monk for flurry of blows and barbarian for whirling frenzy, two more attacks each paired with another −2 attack penalty. Monk isn’t generally compatible with barbarian, but you could go for a chaos monk, as detailed in Dragon vol. 335: that doesn’t get flurry of blows, but its flailing strike grants 1d4−1 extra attacks—as good or better 75% of the time. It means using a sai instead of a dagger, but they’re pretty similar (you can get out of that with another feat, but doesn’t seem worth it). While we’re looking through Dragon we should also note the targeteer fight in vol. 310, which can get ranged-attack-related special features not otherwise available as feats—including arrow swarm, which lets you get 2 extra attacks for a −5 attack penalty (RAW, it actually stacks with Rapid Shot, too).
A ¾ BAB character has a rough time with a −11 penalty, particularly when two of those attacks have a −5 penalty from being an iterative, and another two have a massive −10 penalty, both stacking with the −6. A couple levels of wildrunner from Races of the Wild are good for primal scream’s big +6 bonus to Dexterity, plus it’s a full BAB class. That requires yet another feat (Endurance), though, so at this point you’re looking at ranger or fighter for bonus feats (and more BAB), cutting into sneak attack and all-around “rogue-ness.” But still, all-told, that’s still going to be around 6-7 levels; 13 more can be rogue. (Rogue as a class really has very little to justify 13 levels to begin with.)
So a build like this:
Level |
Class |
BAB¹ |
Attacks |
Special |
Sneak Attack |
Feat |
1st |
Rogue |
+0 |
1 |
|
+1d6 |
PBS² |
2nd |
Targeteer³ |
+1 |
2 |
|
+1d6 |
Rapid ShotB |
3rd |
|
+2 |
4 |
Arrow swarm⁴ |
+1d6 |
Endurance |
4th |
Barbarian |
+3 |
5 |
Whirling frenzy |
+1d6 |
|
5th |
Chaos Monk |
+4 |
1d4+5 |
Flailing strike |
+1d6 |
|
6th |
Wildrunner |
+5 |
1d4+6 |
|
+1d6 |
TWF⁵ |
7th |
|
+6/+1 |
1d4+7 |
Primal scream |
+1d6 |
|
8th |
Rogue |
+7/+2 |
1d4+7 |
Penetrating strike⁶ |
+1d6 |
|
9th |
|
+8/+3 |
1d4+8 |
|
+2d6 |
Imp. TWF⁵ |
10th |
|
+8/+3 |
1d4+8 |
|
+2d6 |
|
11th |
|
+9/+4 |
1d4+8 |
|
+3d6 |
|
12th |
|
+10/+5 |
1d4+8 |
|
+3d6 |
Quick Draw |
13th |
|
+11/+6/+1 |
1d4+8 |
|
+4d6 |
|
14th |
|
+11/+6/+1 |
1d4+9 |
|
+4d6 |
|
15th |
|
+12/+7/+2 |
1d4+9 |
|
+5d6 |
Gr. TWF⁵ |
16th |
|
+13/+8/+3 |
1d4+9 |
|
+5d6 |
Precise ShotB |
17th |
|
+14/+9/+4 |
1d4+9 |
|
+6d6 |
|
18th |
|
+14/+9/+4 |
1d4+9 |
|
+6d6 |
Far Shot |
19th |
|
+15/+10/+5 |
1d4+10 |
Special ability |
+7d6 |
|
20th |
|
+16/+11/+6/+1 |
1d4+10 |
|
+7d6 |
|
Assuming sane fractional BAB.
Point Blank Shot
Dragon vol. 310, a ranged-attack-focused fighter variant.
Special targeteer feature that replaces a bonus feat. Grants up to two bonus ranged attacks.
Two-Weapon Fighting
Dungeonscape alternative class feature, keep half your sneak attack damage against creatures normally immune to it. Evasion is nice but this is way better. Plus if you really wanted evasion you could always grab another level of monk.
As you can see, you end up with 1d4+10 attacks, for an average of 12.5 attacks. Your BAB is +16, and you have a big +6 bonus to Dexterity, so your accuracy isn’t too bad (at least three of those attacks are taking such massive penalties, though, that they’re unlikely to hit on anything but a natural 20). Assuming all-in on Dexterity (18 base, +2 from elf, +5 from levels, +6 from gloves of dexterity, +5 from wish, and then +6 from primal scream), we have 42 Dexterity: a +16 bonus. That makes our attack line look like this:
+21/+21/+21/+21/+21/+16/+11/+6 main hand dagger, +21/+16/+11 offhand dagger
With up to three more +21 main hand dagger attacks from flailing strike. A +21 is not good for 20th level, but maybe magic weapons and other things can improve on that.
There is still plenty of room for improvement here, but it means less rogue. Master thrower is a prestige class that can literally double your attacks here, for example, by using its palm throw feature—but only with smaller weapons like shuriken.
Tome of Battle can also help. For example, dipping swordsage for assassin’s stance gets you +2d6 sneak attack damage, and can also get you excellent Tiger Claw maneuvers like wolf fang strike and dancing mongoose, which unlike many maneuvers are not melee-specific, and grant more attacks. Sudden leap is good for repositioning without sacrificing a full-attack, too.
You could even go for more initiating, aiming for raging mongoose and time stands still, for even more attacks. If you totally ditched rogue, you could qualify for all ten levels of eternal blade—one of the best elf-specific prestige classes in the game—and gets amazing island in time for an immediate-action full-attack—a barrage of knives any time you want it.
Finally, we could get into real theoretical-optimization shenanigans. An “idiot crusader” build can literally deal infinite damage with a dagger. Using a +1 aptitude dagger is inferior to using an 18-20 weapon for a Lightning Maces/Roundhouse Kick build, but it would still work, and still deliver an infinite number of attacks (on average). Shapeshifting can grant all kinds of extra attacks; there’s probably some way to turn those into thrown daggers. And so on.