I am not sure that Parallels will be able to solve this unless they re-design their ToolGate interface to present a virtual touchpad to the guest when the host is driven by the touchpad.  I looked into the issue of smooth scrolling on Linux several times and it is not such a happy environment in this sense, there are dragons out there.
A good and _very_ comprehensive read on the topic can be found over there: https://pavelfatin.com/scrolling-with-pleasure/ .  I short even if Parallels do everything they can to provide a precision pointer it is unlikely that you will get the smooth and responsive scrolling in the system.  A good start would be to switch to libinput and ensure that you are ready for any changes Parallels may introduce to their ToolGate interface.
For example, right now on a Linux guest where the pointer is driven by libinput you can see the following:
	Code:
	
[galaxy@archlinux ~]$ xinput list
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
⎜   ↳ Parallels Virtual Mouse                    id=8    [slave  pointer  (2)]
⎜   ↳ Parallels Virtual Mouse                    id=9    [slave  pointer  (2)]
⎜   ↳ ImExPS/2 Generic Explorer Mouse            id=11    [slave  pointer  (2)]
⎣ Virtual core keyboard                      id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                id=5    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Sleep Button                                id=7    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=10    [slave  keyboard (3)]
 Here, pointer with id 8 is the whatever device is managing your cursor in the host system mapped to the virtual device presented by Paralles to your guest.  I don't know why we have 3 different interfaces through the ToolGate, though.
	Code:
	
[galaxy@archlinux ~]$ xinput list 8
Parallels Virtual Mouse                    id=8    [slave  pointer  (2)]
    Reporting 7 classes:
        Class originated from: 8. Type: XIButtonClass
        Buttons supported: 11
        Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" "Button Back"
        Button state:
        Class originated from: 8. Type: XIValuatorClass
        Detail for Valuator 0:
          Label: Abs X
          Range: 0.000000 - 65535.000000
          Resolution: 0 units/m
          Mode: absolute
          Current value: 35505.458221
        Class originated from: 8. Type: XIValuatorClass
        Detail for Valuator 1:
          Label: Abs Y
          Range: 0.000000 - 65535.000000
          Resolution: 0 units/m
          Mode: absolute
          Current value: 40043.388977
        Class originated from: 8. Type: XIValuatorClass
        Detail for Valuator 2:
          Label: Rel Horiz Scroll
          Range: -1.000000 - -1.000000
          Resolution: 0 units/m
          Mode: relative
        Class originated from: 8. Type: XIValuatorClass
        Detail for Valuator 3:
          Label: Rel Vert Scroll
          Range: -1.000000 - -1.000000
          Resolution: 0 units/m
          Mode: relative
        Class originated from: 8. Type: XIScrollClass
        Scroll info for Valuator 2
          type: 2 (horizontal)
          increment: 15.000000
          flags: 0x0
        Class originated from: 8. Type: XIScrollClass
        Scroll info for Valuator 3
          type: 1 (vertical)
          increment: 15.000000
          flags: 0x0
 Above, you may have spotted that the increment for scrolling is 15, so it is going to be quite jumpy.  Usually, you can adjust these settings if the device exposes some capabilities for adjusting the scroll speed, however, with the current implementation the list of supported capabilities is just the following:
	Code:
	
[galaxy@archlinux ~]$ xinput list-props 8
Device 'Parallels Virtual Mouse':
    Device Enabled (116):    1
    Coordinate Transformation Matrix (118):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Natural Scrolling Enabled (255):    0
    libinput Natural Scrolling Enabled Default (256):    0
    libinput Middle Emulation Enabled (257):    0
    libinput Middle Emulation Enabled Default (258):    0
    libinput Calibration Matrix (259):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Calibration Matrix Default (260):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Left Handed Enabled (261):    0
    libinput Left Handed Enabled Default (262):    0
    libinput Send Events Modes Available (238):    1, 0
    libinput Send Events Mode Enabled (239):    0, 0
    libinput Send Events Mode Enabled Default (240):    0, 0
    Device Node (241):    "/dev/input/event3"
    Device Product ID (242):    8250, 65532
    libinput Drag Lock Buttons (263):    <no items>
    libinput Horizontal Scroll Enabled (264):    1
[galaxy@archlinux ~]$
 So we are missing capabilities to actually fine tune the scrolling.  You may try to use "evdev" driver that does support adjustments of the scroll speed, but still do not expect it to be on par with what you have on your macOS.