First of all, there is an example in Construct called "Template: Auto Runner" that can show you a way to do the constant scrolling with randomly placed obstacles.
As for speeding up when passing a pipe, you just need to check the players current x (for horizontal movement of course) position against the x position of each pipe every tick. Then each time a pipes position goes from greater than the player to less than, increment the speed variable for the player. If you are destroying the pipes when they leave the screen, checking all pipes should not affect performance.
Of course, slowing down would just take an on collision test. You would just need to remember not to speed up after passing the pipe the player collided with.