This issue has plagued most of the mainstream embedded devices for quite some time. Most of the packet processing is done on the CPU itself, and the CPUs in these routers are no where near as fast as a standard PC today. 90mbit/sec is quite a lot of traffic to handle, even for a commercial web server on dedicated hardware (1U box, etc.).
redstorm's advice to use "top" won't apply here; most of the CPU time is almost certainly going to be spent in the kernel, not in userland (read: not in a daemon). I don't know what Linux offers in the way of real-time kernel profiling, especially on an embedded box.
My recommendation for people doing extremely high throughput rates is to simply not use generic home routers like this. Instead, invest in a small mini-ITX or microATX PC system and run one of the many router distributions out there for x86 hardware, such as pfSense or m0n0wall. You won't have this problem on those systems. Sorry to burst your bubble, but that's the case.