Thanks macegr, you set me of in the right direction. I wanted to keep this thing as simple as possible, and knew the library works, so didn’t want to change any of that. No need to fix things that work 
So I went of and got a 30MHz oscillator crystal and hooked that up to GSCLK on the TLC. So not using the wire coming from Arduino Digital 3. Together with the library, everything is working properly. Of course you do loose port 3 if you don’t extract those parts form the library.
The PWM frequency is now ~7.3kHz.
Now to make the TLC reset faster, I have to pulse the BLANK pin faster. To get to a frequency of 30kHz, it needs to reset every 1000 oscillator pulses. Ideally, I want to be able to control the frequency. Worst case, a potentiometer; best case, digital via RS232.
Adding another clock (or a 555 for variable frequency) with the requested frequency was the easy solution. But both clocks start to run out of sync. This is not a really big problem, but in my case, as I’m both logging requested duty and performing PID on them, this wouldn’t give me smooth log files.
So what I needed was something that is fast enough to count oscillator pulses, and then output a very short pulse on BLANK. The TLC his main job is to count those pulses, so why not exploit that?
As I only needed 10 PWM outputs, there are 6 left on the TLC. I can then use one of those to create an on-time that is the same as the period of the requested PWM frequency. When that period is over, the output goes high. So a positive edge detection circuit is all I need to give a pulse on BLANK.
I tried various solutions, going from neat and tidy to a clutter of components. All solutions either gave a pulse too short (not resetting), or too long (decreasing the maximum possible duty request). In the end, I ended up with a simple circuit. Maybe a bit large PCB wise, but it is the most stable solutions of everything I had laying around.

A transistor is used to inverse OUT15. Both the OUT15 and the inverse are than added together. Because of the slow response of the transistor, the inverse stays high slightly longer. It is during that time, that it makes a pulse.
The ‘Custom_Arduino_BLANK’ is needed to get the TLC going. The Arduino has to output a pulse on it to start the TLC. Of course this pin can also be used to actually blank the outputs as well.
I was a bit concerned about the length of the pulse influencing the maximal achievable pulse duty. But in fact, it runs perfect up 100%. The edges aren’t perfectly straight after 95%, but I guess that’s the same when using it ‘normal’.

Blue is OUT15, red is BLANK.
The code I use is very easy.
#define osc_freq 30000
int pwm_freq_req = 30;
int pwm_freq_req_pulse = 972;
pwm_freq_req_pulse = osc_freq / pwm_freq_req;
Tlc.set(15, ( pwm_freq_req_pulse - 28 ));
pwm_pulse_per_duty = (float)pwm_freq_req_pulse / pwm_duty_max;
pwm_duty_req_pulse_c1 = pwm_duty_req_c1 * pwm_pulse_per_duty;
The factor 28 is there to take into account of the time delay of the whole circuit. So in fact, I make OUT15 stop slightly sooner, so that the BLANK pulse happens exactly goes high at the right time. This will probably depend on all the components used, and I will check this again once everything is running on a PCB instead of a bread board.
Don’t know if anybody else will ever need this, but at least it’s possible to do this.