list = {5, 10, 3, 8, 9, 8, 8, 4, 1, 7};

___

A variant of rhermans `SequenceSplit` using `SequenceReplace`:

 SequenceReplace[list, {a__} /; Total[{a}] <= 20 :> {a}]

> {{5, 10, 3}, {8, 9}, {8, 8, 4}, {1, 7}}

The sister version of `SequenceCases`, which is also not fast for large lists, but is short and clear.