The designations "audio" and "sub-audio" do not pertain to the update rate but only to whether they are changing at a rate that lies within the range of human hearing. In other words, the LFO, the AR envelope and other modules may be sub-audio but they are still computed at the sample rate, just as the audio modules are.
Capytalk expressions in the parameter fields are evaluated (between sample ticks) whenever a value they depend on changes, irrespective of the millisecond clock. Capytalk expressions that are functions of time are evaluated once per millisecond.
If you have a Sound pasted into a parameter field as part of a Capytalk expression, the Sound is evaluated at the sample rate, but its value is read only when the expression of which it is a part is evaluated once per millisecond.
If a Sound is pasted into certain parameter fields (the ones with a biege background) and the Sound is in the field on its own (no Capytalk expression or 'L' after the Sound), then it is both computed and updated at the sample rate.
In answer to your question, a 1 kHz frequency Oscillator would line up with the millisecond clock if you sample rate is an integer multiple of 1000 (for example, 48 kHz would work but 44.1 kHz would not line up).