DataTable - Scroll Data scrolling with fixed header is available horizontally, vertically or both. ScrollHeight and ScrollWidth values can either be fixed pixels or percentages.
Vertical
Vertical and Horizontal

export class DataTableScrollDemo implements OnInit {

    cars: Car[];

    constructor(private carService: CarService) { }

    ngOnInit() {
        this.carService.getCarsMedium().then(cars => this.cars = cars);
    }
}


<p-dataTable [value]="cars" scrollable="true" scrollHeight="200px">
    <header>Vertical</header>
    <p-column field="vin" header="Vin"></p-column>
    <p-column field="year" header="Year"></p-column>
    <p-column field="brand" header="Brand"></p-column>
    <p-column field="color" header="Color"></p-column>
</p-dataTable>

<p-dataTable [value]="cars" scrollable="true"  scrollHeight="200px" scrollWidth="75%" [style]="{'margin-top':'30px'}">
    <header>Vertical and Horizontal</header>
    <p-column field="vin" header="Vin" [style]="{'width':'250px'}"></p-column>
    <p-column field="year" header="Year" [style]="{'width':'250px'}"></p-column>
    <p-column field="brand" header="Brand" [style]="{'width':'250px'}"></p-column>
    <p-column field="color" header="Color" [style]="{'width':'250px'}"></p-column>
</p-dataTable>